Как я могу заставить mod_rewrite и mod_alias работать вместе?

StackOverflow https://stackoverflow.com/questions/3123138

Вопрос

У меня есть среда 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 директивы централизованы и RewriteRules на сайт .htaccess файлы.

Это было полезно?

Решение

Вы используете

AllowOverride None

директиву и, таким образом, отключив любую .htaccess файлы в псевдониме каталога.Удалите это, и все должно работать.

/ должен работать на RewriteBase.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top