繁体   English   中英

apache2重写规则不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM