mod_rewrite 有两个主要问题:
当我的规则无效时,不会报告有意义的错误
为了可靠地测试每个修改,我必须删除 Google Chrome 的缓存。这不是火箭科学,但我必须按 Ctrl + Shift + Delete,单击 OK,然后关闭窗口,然后重新加载。
我想看看是否有任何大师愿意分享他们有效管理 mod_rewrite 代码的秘密。
一个技巧是打开重写日志。要打开它,请在 Apache HTTP Server 主配置或当前虚拟主机文件中尝试此行(.htaccess
中的
not):
LogLevel alert rewrite:trace6
在 Apache httpd 2.4 mod_rewrite 之前,这样的每模块日志配置还不存在。相反,您可以使用以下日志记录设置:
RewriteEngine On
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 3
wget
或
curl
)进行测试,而不是手动浏览器。然后你就不必清除任何缓存;只需在 shell 中按向上箭头 并按 Enter 即可重新运行测试获取。
Ben 的回答,在 Linux 上运行 Apache(在我的例子中是 Debian)时,您可以执行以下操作。
首先创建文件rewrite-log.load。
/etc/apache2/mods-available/rewrite-log.load
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 3
然后输入
$ a2enmod 重写日志随后
$ 重启 apache2 服务当您完成调试重写规则后,
$ a2dismod 重写日志 && 服务 apache2 重新启动