mod_rewrite与Alias指令冲突

时间:2011-04-06 15:38:53

标签: php mod-rewrite mod-alias

我的主要网站使用PHP / Zend Framework,而.htaccess是常见的:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

现在我需要将一个论坛(在另一个目录中)带到主站点。我在VirtualHost中添加了一个Alias指令

Alias /forums "h:/projects/forums"

论坛软件使用自己的.htaccess。主要的URL /论坛是可访问的,但不是其他人。其他URL(没有相应文件的URL)将转发到主站点。换句话说,主站点(/)的.htaccess文件被选中,而不是/ forums目录下的文件。

1 个答案:

答案 0 :(得分:2)

尝试添加新RewriteCond以告知您的主.htaccess文件忽略/forums下的请求。在请求通过该文件后,它应该被/forums/.htaccess文件接收,但我承认我不确定Alias是否会影响这个。

条件如下:

RewriteCond %{REQUEST_URI} !^/forums [NC]

如果请求不以RewriteRule开头,则表示“仅执行下一个/forums”。最后的[NC]表示忽略/forums上的大写,因此请求实际上是/Forums还是/FORUMS无关紧要。