Apache 2.2 のローカル開発サーバーに mod_rewrite ルールがいくつかあり、正常に動作していました。Apache 2.4 にアップグレードした後、単純な mod_rewrite ルールを実行しようとしましたが、動作しません。ただし、.htAccess では動作します。これはパスの問題でしょうか? それとも、Apache 2.4 では mod_rewrite が異なりますか? 何か提案はありますか?
ローカル開発サーバー情報: WAMP-Server 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"
、これは Web サイトのルートがそのディレクトリにあることを意味します。 を使用して書き換えルールを適用するには<Directory>
、フルパスを指定する必要があります。
<Directory "C:/wamp/www">
[...]
</Directory>
または多分:
<Directory "C:/wamp/www/site1">
[...]
</Directory>
実際に を使用して参照しようとしているパスによって異なります/site1
。