Answers:
输入一些垃圾值即可.htaccess
例如foo bar
,sakjnaskljdnas
任何关键字不是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将记录几乎所有重写日志详细信息。
Apache 2.4中发生了一些变化:
该RewriteLog和RewriteLogLevel指令已被删除。现在,可以通过使用LogLevel指令为mod_rewrite模块配置适当的日志记录级别来提供此功能。另请参见mod_rewrite日志记录部分。
有关LogLevel的更多信息,请参阅LogLevel指令
你可以完成
RewriteLog "/path/to/rewrite.log"
现在以这种方式
LogLevel debug rewrite_module:debug
“输入一些垃圾值”答案对我而言并没有解决问题,尽管输入了垃圾,我的网站仍在继续加载。
相反,我将以下行添加到了.htaccess文件的顶部:
deny from all
这将迅速让您知道.htaccess是否被拾取。如果正在使用.htaccess,则该文件夹中的文件将根本不会加载。
通常,.htaccess中的任何更改都应具有可见的效果。如果无效,请检查您的配置apache文件,例如:
<Directory ..>
...
AllowOverride None
...
</Directory>
应该改为
AllowOverride All
而且,您将能够更改.htaccess文件中的指令。
要回答三个问题中的第一个问题,查看.htaccess文件是否正常工作的一种简单方法是在.htaccess文件顶部触发自定义错误:
ErrorDocument 200 "Hello. This is your .htaccess file talking."
RewriteRule ^ - [L,R=200]
关于第二个问题,如果未读取.htaccess文件,则服务器的主要Apache配置可能已AllowOverride
设置为None
。Apache的文档提供了针对该情况以及其他可能导致.htaccess无效的故障排除提示。
最后,要回答第三个问题,如果您需要调试在重写规则中引用的特定变量,或者正在使用要独立于规则求值的表达式,则可以执行以下操作:
输出您要引用的变量,以确保其具有您期望的值:
ErrorDocument 200 "Request: %{THE_REQUEST} Referrer: %{HTTP_REFERER} Host: %{HTTP_HOST}"
RewriteRule ^ - [L,R=200]
通过将其放入指令中来独立测试表达式<If>
。这使您可以确保表达式正确编写或在期望时匹配:
<If "%{REQUEST_URI} =~ /word$/">
ErrorDocument 200 "Your expression is priceless!"
RewriteRule ^ - [L,R=200]
</If>
快乐的.htaccess调试!
如果您有权访问apache bin目录,则可以使用,
httpd -M
首先检查加载的模块。
info_module (shared) isapi_module (shared) log_config_module (shared) cache_disk_module (shared) mime_module (shared) negotiation_module (shared) proxy_module (shared) proxy_ajp_module (shared) rewrite_module (shared) setenvif_module (shared) socache_shmcb_module (shared) ssl_module (shared) status_module (shared) version_module (shared) php5_module (shared)
之后,诸如Options -Indexes
或的简单指令deny from all
将巩固.htaccess的正常运行。
要测试htaccess重写规则,只需填写要对其应用规则的url,将htaccess的内容放在较大的输入区域中,然后按“测试”按钮。