如何调试.htaccess重写规则不起作用?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (13)

我有一个没有做任何事情RewriteRule.htaccess文件。我如何解决这个问题?

  • 我如何验证该.htaccess文件是否被Apache读取和遵守?我是否可以编写一个回声“它正在工作”的信息,如果我确实写了回声,该回声会在哪里出现?
  • 如果该.htaccess文件没有被使用,我该如何让Apache使用它?
  • 如果.htaccess正在使用但我RewriteRule仍然没有效果,我还能做些什么来调试?
提问于
用户回答回答于

输入一些垃圾值即可.htaccess 例如foo barsakjnaskljdnas 任何关键字不是htaccess的认可,并访问您的网址。如果它正在工作,你应该得到一个

500内部服务器错误 内部服务器错误 服务器遇到内部错误或配置错误,无法完成您的请求....

我建议你尽快把它放RewriteEngine on

因为你在你的机器上。我认为你有访问Apache .conf文件。

打开.conf文件,然后查找类似于以下内容的行:

LoadModule rewrite_module modules/mod_rewrite.so

如果它被评论(#),取消注释并重新启动Apache。

记录重写

RewriteEngine On
RewriteLog "/path/to/rewrite.log"
RewriteLogLevel 9

把上面的3行放在你的virtualhost。重新启动httpd。

RewriteLogLevel 9使用Level的高值会显着降低Apache服务器的速度!仅在调试时使用大于2的级别的重写日志文件!级别9将记录几乎每一个重写的细节。

用户回答回答于

“输入一些垃圾值”的答案对我来说并没有诀窍,尽管进入垃圾,我的网站仍在继续加载。

相反,我将以下行添加到.htaccess文件的顶部:

deny from all

这将很快让你知道如果.htaccess正在拾起或不。如果正在使用.htaccess,则该文件夹中的文件根本不会加载。

扫码关注云+社区