#php #mod-rewrite #mod-alias
#php #mod-перезапись #mod-псевдоним
Вопрос:
Мой основной веб-сайт использует 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:
Попробуйте добавить новый, RewriteCond
чтобы указать вашему основному .htaccess
файлу игнорировать запросы в разделе /forums
. После того, как запрос проходит через этот файл, он должен быть подхвачен /forums/.htaccess
файлом, хотя я признаю, что не совсем уверен, влияет ли это Alias
на это.
Условие будет выглядеть примерно так:
RewriteCond %{REQUEST_URI} !^/forums [NC]
Здесь говорится «выполняйте следующий запрос только в том случае, RewriteRule
если он не начинается с /forums
«. [NC]
В конце говорится игнорировать оболочку вкл /forums
, поэтому не будет иметь значения, действительно ли запрос предназначен для /Forums
или /FORUMS
.