mod_rewrite在.htaccess文件中工作,但不在apache2.conf中工作

时间:2009-11-27 12:54:07

标签: apache mod-rewrite

我在.htaccess文件中有以下内容作为测试:

RewriteEngine on
RewriteRule ^(.*)$ /backend/$1

这可以按预期工作。我能够在apache2.conf中使用以下代码进行重写日志记录:

<IfModule mod_proxy.c>
    RewriteLog "/tmp/REWRITE.log"
    RewriteLogLevel 9
</IfModule>

创建日志文件并按预期记录调试信息。但是,当我删除.htaccess文件时,按如下所示更改apache2.conf指令,并重新启动apache以全局执行等效操作,它不起作用。

<IfModule mod_proxy.c>
    RewriteLog "/tmp/REWRITE.log"
    RewriteLogLevel 9
    RewriteEngine on
    RewriteRule ^(.*)$ /backend/$1
</IfModule>

我在Ubuntu上使用Apache / 2.0.55。

帮助!

3 个答案:

答案 0 :(得分:0)

你有没有考虑在之前使用在任何其他重写指令之前启用RewriteEngine?

答案 1 :(得分:0)

您的RewriteRule指令是否包含在特定服务器定义中?你有虚拟服务器吗?

我问这个的原因是你说这个工作在.htaccess文件中,该文件是特定于目录的;虽然正式文档说RewriteRule可以应用于服务器配置,虚拟主机,目录,.htaccess。

答案 2 :(得分:0)

你试过这个吗?

    RewriteEngine on
    RewriteRule ^(.*)$ /backend/$1

<IfModule mod_proxy.c>
    RewriteLog "/tmp/REWRITE.log"
    RewriteLogLevel 9

</IfModule>

因为这种方式我能够进行重写,但是日志没有用,因此mod_proxy.c中存在问题