Как я могу заставить mod_rewrite и mod_alias работать вместе?
-
30-09-2019 - |
Вопрос
У меня есть среда Windows/Apache/PHP, настроенная для имитации учетной записи общего хостинга, но я не могу получить mod_alias
и mod_rewrite
приятно играть друг с другом.Оба определенно включены на уровне сервера и для каждого сайта.
У меня есть d:\web\public_html\
настроить как DocumentRoot.Но вообще говоря там будет пусто.
У меня есть d:\web\sites\
где я буду хранить свои сайты и указывать на использование Alias
и под ним имеется следующая структура каталогов:
d:\web\sites\alfa d:\web\sites\alfa\public_html d:\web\sites\bravo d:\web\sites\bravo\public_html
У меня есть псевдонимы, настроенные следующим образом:(и они определенно работают!)
Alias /alfa d:/web/sites/alfa/public_html<Directory "D:\web\sites\alfa\public_html">
Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all</Directory>
А public_html
папки, в которых находятся мои файлы для каждого сайта .htaccess
файлы хранятся и у них определенно есть mod_rewrite
включен, но не будет работать корректно.
До сих пор я не застрял в том, что RewriteBase
должно быть.я пробовал /
, /alfa
, /alfa/
и alfa/
.я даже пробовал d:\web\sites\alfa\public_html
, d:/web/sites/alfa/public_html
, d:\web\sites\alfa
и d:/web/sites/alfa
но безрезультатно!
Возможно ли это вообще?Если да, то что я делаю не так?
Я, очевидно, хотел бы сохранить свой Alias
директивы централизованы и RewriteRule
s на сайт .htaccess
файлы.
Решение
Вы используете
AllowOverride None
директиву и, таким образом, отключив любую .htaccess
файлы в псевдониме каталога.Удалите это, и все должно работать.
/
должен работать на RewriteBase
.