У меня были некоторые правила mod_rewrite на локальном сервере разработки Apache 2.2, и они работали нормально. Теперь, после обновления до Apache 2.4, я пытаюсь сделать простое правило mod_rewrite, и оно не работает. Однако оно работает с .htAccess. Это проблема пути? Или mod_rewrite отличается в Apache 2.4? Есть предложения?
Информация о локальном сервере разработки: WAMP-сервер 2.5 - Windows 7 mod_rewrite загружен и отображается в php_info()
Конфигурация Apache: http://apaste.info/OF3
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "C:/wamp/www"
ServerName site1.example.com
ErrorLog "logs/site1-error.log"
CustomLog "logs/site1-access.log" common
<Directory "/site1">
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
LogLevel alert rewrite:trace3
RewriteRule ^/index.html$ /welcome.html
</Directory>
</VirtualHost>
решение1
Я предполагаю, что путь, который вы указали в , <Directory "/site1">
неверен. У вас есть DocumentRoot "C:/wamp/www"
, что означает, что корень вашего веб-сайта находится в этом каталоге. Чтобы применить правила перезаписи с помощью <Directory>
, вы должны указать полный путь:
<Directory "C:/wamp/www">
[...]
</Directory>
или, может быть:
<Directory "C:/wamp/www/site1">
[...]
</Directory>
В зависимости от того, к какому пути вы фактически пытаетесь обратиться, используя /site1
.