我在 Apache 2.2 本地开发服务器中有一些 mod_rewrite 规则,它们运行良好。现在升级到 Apache 2.4 后,我尝试执行一个简单的 mod_rewrite 规则,但它不起作用。但它可以与 .htAccess 一起使用。这是路径问题吗?还是 mod_rewrite 在 Apache 2.4 中有所不同?有什么建议吗?
本地开发服务器信息: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"
,这意味着您的网站的根目录位于该目录中。为了使用 应用重写规则<Directory>
,您必须指定完整路径:
<Directory "C:/wamp/www">
[...]
</Directory>
或者可能:
<Directory "C:/wamp/www/site1">
[...]
</Directory>
取决于您实际尝试使用来引用哪条路径/site1
。