mod_rewrite конфликтует с директивой Alias - PullRequest
1 голос
/ 06 апреля 2011

Мой основной веб-сайт использует 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]

Теперь мне нужно перенести форум (в другом каталоге) на основной сайт.Я добавил директиву Alias ​​в VirtualHost

Alias /forums "h:/projects/forums"

Программное обеспечение форума использует свой собственный .htaccess.Основной URL / форумы доступны, но не другие.Другие URL (те, у которых нет соответствующих файлов) пересылаются на основной сайт.Другими словами, выбирается файл .htaccess основного сайта (/), а не тот, который находится в каталоге / forums.

1 Ответ

2 голосов
/ 06 апреля 2011

Попробуйте добавить новый RewriteCond, чтобы сообщить основному .htaccess файлу игнорировать запросы в /forums.После того, как запрос проходит через этот файл, он должен быть обработан файлом /forums/.htaccess, хотя я признаю, что не совсем уверен, влияет ли Alias на это.

Условие будет выглядеть следующим образом:

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

Это говорит о том, что «выполнить следующий RewriteRule только если запрос не начинается с /forums».[NC] в конце говорит, что игнорировать регистр на /forums, поэтому не имеет значения, действительно ли запрос для /Forums или /FORUMS.

...