有没有办法看到mod-rewrite如何实时行动?

时间:2012-12-18 07:23:04

标签: debugging .htaccess mod-rewrite redirect http-redirect

我有一个mod-rewrite规则可以正常工作几个月:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

(位于网站/文件夹中)。

这会将人们从网站/文件夹/东西重定向到site / folder / index.php?q =某些东西,让网址很漂亮。

现在,突然间,当没有人触及.htaccess文件或相关页面的代码时,它已停止工作。虽然网址与以前保持一致,但网页的内容是site / index.php而不是(site / folder / index.php?q = something)。

如何调试此问题,哪些工具可以让我遵循重定向规则的流程?

1 个答案:

答案 0 :(得分:1)

在服务器或vhost配置中,您可以添加以下行:

        RewriteLog /tmp/rewrite.log
        RewriteLogLevel 5

然后,您可以查看写入/tmp/rewrite.log(或您选择的任何位置)的输出,以查看mod_rewrite实时执行的操作。如果您没有看到任何输出,那么您所拥有的规则根本没有应用(可能是覆盖已更改或mod_rewrite未加载?)。