Ich hatte einige mod_rewrite-Regeln im lokalen Apache 2.2-Entwicklungsserver und sie funktionierten einwandfrei. Jetzt, nach dem Upgrade auf Apache 2.4, versuche ich, eine einfache mod_rewrite-Regel zu implementieren und sie funktioniert nicht. Mit .htAccess funktioniert sie jedoch. Ist das ein Pfadproblem? Oder ist mod_rewrite in Apache 2.4 anders? Irgendwelche Vorschläge?
Informationen zum lokalen Dev-Server: WAMP-Server 2.5 – Windows 7 mod_rewrite ist geladen und wird in php_info() angezeigt
Apache-Konfiguration: 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>
Antwort1
Ich vermute, dass der Pfad, den Sie in angeben, <Directory "/site1">
falsch ist. Sie haben DocumentRoot "C:/wamp/www"
, was bedeutet, dass sich das Stammverzeichnis Ihrer Website in diesem Verzeichnis befindet. Um Umschreibregeln mit einem anzuwenden <Directory>
, müssen Sie den vollständigen Pfad angeben:
<Directory "C:/wamp/www">
[...]
</Directory>
oder vielleicht:
<Directory "C:/wamp/www/site1">
[...]
</Directory>
Abhängig davon, auf welchen Pfad Sie tatsächlich mit verweisen möchten /site1
.