[英]apache2 rewrite rules not working
我试图在apache2 conf中编写一些重写规则,但它们不起作用以下是我在apache conf中的virtualhost块。 我的操作系统是Ubuntu 12.04服务器版
DocumentRoot /var/www/xyz
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/xyz>
Options Indexes FollowSymLinks MultiViews
#AllowOverride None
AllowOverride All
Order allow,deny
#Order deny,allow
allow from all
</Directory>
我有带有某些重写规则的.htaccess文件,如下所示
ReWriteEngine on RewriteRule ^/matchV/(.*) http://host:8080/$1 RewriteRule ^/other/(.*?)$ /httpdcontent/$1
apache启用了rewrite模块。
有人可以告诉我我是否想念任何东西。
谢谢,
桑迪普
首先,第一个重写规则似乎缺少美元符号。 然后,我建议在“调试”情况下使用[L]。 这样,此时只需要更正一个规则。
如果需要检查重写的进行方式,则需要查看日志文件/var/log/apache2/error.log和/var/log/apache2/access.log。 他们将告诉您服务器尝试处理哪个URL,以及它如何失败。 由此,您应该能够看到缺少的内容或“太多”的内容。
从我看来,我想说这与重写基础有关。 您的Web服务器根目录可能位于/ var / www,而虚拟主机的目录是/ var / www / xyz。 我认为您可以使用类似的方法来修复它...
RewriteBase /xyz
无论如何,请编辑配置,并且不要停止检查日志。 从那里,您将看到服务器尝试处理的URL /文件,并且您应该能够更正其使用的路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.