apache2重写规则不起作用

时间:2013-07-14 02:57:24

标签: linux apache ubuntu apache2 rewrite

我正在尝试在apache2 conf中编写一些重写规则,但它们无法正常工作 以下是我在apache conf中的虚拟主机阻止。我的操作系统是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启用重写模块。

有人能告诉我我是否遗漏了任何东西。

谢谢,

和Sandeep

1 个答案:

答案 0 :(得分:0)

首先,第一次重写规则似乎缺少一个美元符号。 然后,我建议在“调试”情况下使用[L]。这样,当时只需要纠正一条规则。

如果您需要检查重写的方式,您需要查看日志文件/var/log/apache2/error.log和/var/log/apache2/access.log。他们会告诉您服务器尝试处理的URL以及失败的方式。从这里,你应该能够看到缺少什么,或者什么是“太多”。

从我看来,我会说它与重写基础有关。您的Web服务器根目录可能位于/ var / www,虚拟主机的目录是/ var / www / xyz。我想你可以使用像...这样的东西来修复它。

RewriteBase /xyz

无论如何,编辑配置,不要停止检查日志。从那里,您将看到服务器尝试处理的URL /文件,您应该能够更正它使用的路径。