标签: mod-alias

别名403禁止使用Apache

我正在尝试在文档根目录外的该文件夹中创建一个名为week7的文件夹和一个名为hello.html的html页面,并通过Alias指令查看它.

我在Document Root中创建了一个名为week7的文件夹.我为它选择了这个位置:

/usr/local/www/week7
Run Code Online (Sandbox Code Playgroud)

而我的文档根目录是:

/usr/local/www/apache22/data
Run Code Online (Sandbox Code Playgroud)

在httpd.conf和标签下,我写道:

    Alias /week7 /usr/local/www/week7
<Directory /usr/local/www/week7>
    Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)

重新启动服务器后,我收到以下消息:禁止403消息.

我尝试更改hello.html文件,week7文件夹甚至www文件夹的权限,但没有任何更改.

有任何想法吗?

apache alias directive mod-alias

25
推荐指数
5
解决办法
5万
查看次数

mod_rewrite还是mod_alias?

我有一个服务器,它的httpd.conf已经有一些" RedirectMatch永久 "指令.

我对mod_alias并不熟悉,我只使用过mod_rewrite.

有什么基本的区别?我没有在mod_alias中看到"L"标志来停止处理规则.

我应该使用哪一个从一个子域重定向到另一个子域的最佳实践?

我可以同时使用两者并且显而易见哪个优先吗?

apache mod-rewrite redirect mod-alias httpd.conf

23
推荐指数
1
解决办法
2万
查看次数

Apache别名虚拟主机

我有两个应用程序在同一个服务器上运行,我希望从url(即)中的子路径提供一个:

  • foo.com - >/var/www/foo
  • foo.com/bar - >/var/www/bar

我正在尝试做一个别名但是没有工作:

<VirtualHost *:80>
  ServerAdmin webmaster@foo.com
  ServerName foo.com
  DocumentRoot /webapps/foo/current/public
  <Directory /webapps/foo/current/public>
    AllowOverride all
    Options -MultiViews
  </Directory>
  RailsEnv staging
  Alias /blog /webapps/blog/current
 <Directory /webapps/blog/current>
   allow from all
   Options +Indexes
 </Directory>
Run Code Online (Sandbox Code Playgroud)

你知道为什么这不起作用吗?

我也试过了serverpath指令而没有任何成功.

你知道如何实现这个目标吗?

提前致谢.

apache mod-alias virtualhost

10
推荐指数
1
解决办法
2万
查看次数

在.htaccess中一起使用mod_rewrite和mod_alias(重定向301)?

我有一个网站,其中包含一组已放入CMS的旧.html和.php页面.

目前在.htaccess文件中有大约30个mod_alias重定向,格式如下:

redirect 301 /oldpage1.html http://www.example.com/newpage1.php
redirect 301 /oldpage2.php http://www.example.com/newpage2.php
redirect 301 /oldpage3.php http://www.example.com/newpage3.php
Run Code Online (Sandbox Code Playgroud)

但我们希望使用mod_rewrite在我们的CMS中拥有漂亮的URL,这将采用该形式http://www.example.com/pagename.php,因此也有以下内容:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1
Run Code Online (Sandbox Code Playgroud)

目前两者正在一起应用,这导致:

http://www.example.com/newpage1.php?page=oldpage1.html
Run Code Online (Sandbox Code Playgroud)

仅当mod_alias重定向301语句未进行匹配时,如何应用重写规则,以便发生以下情况:

http://www.example.com/oldpage1.html- >重定向到 - > http://www.example.com/newpage1.php- >,它被视为 - > http://www.example.com/index.php?page=/newpage1.php

任何提示都会非常感激吗?谢谢.

.htaccess mod-rewrite redirect mod-alias

8
推荐指数
1
解决办法
6375
查看次数

重写别名目录

我正在尝试首先使用Alias文件夹将项目文件存储在与我不同的位置DocumentRoot,然后mod_rewrite对此请求执行a .但它似乎没有解析.htaccess文件.

这是我的Alias文件的内容:

Alias /test F:/Path/To/Project

<Directory F:/Path/To/Project>
    Order allow,deny
    Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

这是我的.htaccess档案:

Options +FollowSymlinks
RewriteEngine on

RewriteRule .* index.php [NC] [PT]
Run Code Online (Sandbox Code Playgroud)

当我删除别名一切正常.

apache mod-rewrite mod-alias

7
推荐指数
2
解决办法
1万
查看次数

Apache mod_alias RedirectMatch除特定模式之外的所有内容

好的旧正则表达式让我疯狂.

我需要将Apache 2.4中的所有流量从HTTP重定向到HTTPS,除了"/ bt/sub/[a_few_endings]",使用来自mod_alias的重定向(不能使用mod_rewrite).

我在我认识的所有在线测试人员中测试了以下正则表达式(例如http://regex101.com/)并且都确认正则表达式确实应该匹配除了我不希望它匹配的URL之外的所有内容:

^/(?!bt/sub/(went_active|success|cancel|expired)).*$ 
Run Code Online (Sandbox Code Playgroud)

据我所知,这应该与一切HTTP://local.mysite.com,重定向到HTTPS://local.mysite.com,除了为以下四种:

仍然,Apache重定向所有内容,包括我不想重定向的上述URL.

我在SO中发现了几个类似的问题,但大多数都是根据mod_rewrite回答的,这不是我想要/需要的,人们说有用的那些对我没用.

这是我目前的虚拟主机配置:

<VirtualHost *:80> 
    ServerName local.mysite.com 
    RedirectMatch 302 ^/(?!bt/sub/(went_active|success|cancel|expired)).*$ https://local.mysite.com 
    DocumentRoot /home/borfast/projects/www/mysite/public 
    #Header set Access-Control-Allow-Origin * 
    SetEnv LARAVEL_ENV localdev 

    <Directory /home/borfast/projects/www/mysite/public/> 
        Options All 
        DirectoryIndex index.php 
        AllowOverride All 
        Require all granted 
    </Directory> 
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

请帮助,防止我发疯:)


更新:有一些奇怪的事情:显然,当找到请求的URL /路径时,Apache忽略RedirectMatch中的表达式并重定向客户端,即使RedirectMatch告诉它不要.

为了测试这个,我在一个单独的VM中创建了一个新的虚拟主机,这个虚拟机刚安装了Ubuntu Trussty 64,并装载了Apache 2.4.这个新的虚拟主机只包含ServerName,RedirectMatch和DocumentRoot指令,如下所示:

<VirtualHost *:80>
    ServerName testing.com
    RedirectMatch 302 ^/(?!bt/sub/(went_active|success)$).*$ https://othersite.com/

    DocumentRoot /home/vagrant/www
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我创建了目录/home/vagrant/www/bt/sub/went_active以确保Apache可以访问两个可能的URL中的至少一个.尝试访问时http://testing.com:8080,我按预期重定向.

然后奇怪的是:访问时http://testing.com:8080/bt/sub/went_active,与我创建的目录匹配的URL,我仍然被重定向,即使我不应该,但在访问时 …

regex apache redirect mod-alias apache2.4

7
推荐指数
2
解决办法
6629
查看次数

为什么在htaccess正则表达式中加倍斜线(即:\\.)?

从另一个答案来看,这个双斜线点很常见

RedirectMatch 404 /\\.svn(/|$)
Run Code Online (Sandbox Code Playgroud)

由于我们匹配"/.svn"等,为什么这不是一个单一的斜线来逃避这段时间?

regex apache pcre mod-alias

7
推荐指数
1
解决办法
141
查看次数

在目标中使用带有HTTP_HOST的RedirectMatch

我一直在阅读,在可能的情况下,我不应该使用mod_rewrite.因此,我正在尝试使用RedirectMatch进行http到https重写.

问题:如何在URL参数中使用RedirectMatch和使用Apache服务器变量(例如%{HTTP_HOST})?

此代码无法向客户端(Chrome)返回响应:

RedirectMatch ^(.*) https://%{HTTP_HOST}/$1
Run Code Online (Sandbox Code Playgroud)

我最近向此提出了类似的问题,但它可能过于冗长而缺乏回答的方向:在不使用mod_rewrite的情况下将HTTP流量重定向到Apache中的https

apache mod-alias http-redirect

6
推荐指数
2
解决办法
4548
查看次数

仅当本地目录不存在时才在 Apache 中使用别名?

我们正在运行一个经销商网络主机,并为其中的所有站点设置一个特定目录的别名。这一切都是通过 WHM/Cpanel 发生的,这可能会使我的问题复杂化。

  1. 我们希望所有主机都通过服务器上的共享位置运行它们的“/concrete”目录。通过向 WHM 中的 apache 包含编辑器添加“别名 /concrete/”/usr/local/share/concrete5/concrete-latest/concrete/,这可以正常工作。

  2. 然而,如果本地的具体/目录存在于虚拟主机的特定 webroot 中,我们宁愿使用它而不是全局使用“/concrete”。如果我们可以在 WHM 内在虚拟主机的上下文中更改此别名也会很好(而且我还没有找到一种很好的方法来修改 WHM 中的虚拟主机部分,而无需破解我不相信的文件) '应该破解。)

想法?

apache alias mod-alias cpanel whm

5
推荐指数
1
解决办法
1147
查看次数

Apache:如何在Alias中使用重写引擎

我有这个别名配置:

Alias /test/ "D:/WWW/Test/"
<Directory "D:/WWW/Test/">
    Order allow,deny
    Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

然后在内部D:/WWW/Test/目录中,我将.htaccess与以下配置放在一起:

<IfModule mod_rewrite.c>
  RewriteEngine on

  RewriteRule ^([^.]*\.css)$ resources/$1 [L,NC]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

我只是想将所有请求重定向localhost/test/css/*localhost/test/resources/css/*.

但似乎.htaccess被忽略了.即使我放DirectoryIndex blablabla.php,浏览器仍然显示index.html.

怎么解决这个?谢谢.

php apache .htaccess mod-rewrite mod-alias

4
推荐指数
1
解决办法
3057
查看次数