Как мне заставить mod_rewrite и mod_alias работать вместе? - PullRequest
0 голосов
/ 26 июня 2010

У меня есть среда 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
<code><Directory "D:\web\sites\alfa\public_html"></code>
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
<code></Directory></code>

Папка (-и) 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 для каждого сайта.

1 Ответ

2 голосов
/ 26 июня 2010

Вы используете директиву

AllowOverride None

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

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

...