Где я могу поместить RewriteRules в Apache2 без использования файлов .htaccess? - PullRequest
11 голосов
/ 24 сентября 2010

Я хочу настроить правило mod_rewrite без использования файлов .htaccess.Когда я помещаю правила в файлы .htaccess, они работают нормально, но я бы предпочел оставить всю конфигурацию в моем конфигурационном файле / etc / apache2 / sites-available / [site name].

Когда я помещаю те же RewriteRules в директивы VirtualHost или Directory, ничего не работает.Что я делаю неправильно?Вот пример из моего конфигурационного файла VirtualHost:

<Directory />
 Options FollowSymLinks
 # AllowOverride is on for the .htaccess files to work
 AllowOverride All
 RewriteEngine On
 RewriteRule ^oldsite\.php$ newsite.php
</Directory>

Я думаю, что могу пропустить какую-то директиву в файле apache2.conf, но я не уверен.Помогите.:)

1 Ответ

5 голосов
/ 24 сентября 2010

Вы используете шаблон RewriteRule, предназначенный для файла .htaccess .Причина:

При использовании механизма перезаписи в файлах .htaccess префикс для каждого каталога (который всегда одинаков для определенного каталога) автоматически удаляется для сопоставления с образцоми автоматически добавляется после завершения замены.

Поэтому попробуйте это правило с полным путем URL:

RewriteRule ^/oldsite\.php$ /newsite.php
...