Mod rewrite Mod Rewrite Skip规则服务器错误
下面的代码给出了一个内部服务器错误,我无法确定原因Mod rewrite Mod Rewrite Skip规则服务器错误,mod-rewrite,Mod Rewrite,下面的代码给出了一个内部服务器错误,我无法确定原因 RewriteEngine On SetEnv APPLICATION production RewriteCond %{ENV:APPLICATION} =production RewriteRule ^.*$ - [S=1] RewriteRule ^(.*)$ html/$1.html 它所要做的就是获取url /test 并将其转为参考 /html/test.html 在幕后,但只有当环境是生产环境时,这是由SetEnv设置的,
RewriteEngine On
SetEnv APPLICATION production
RewriteCond %{ENV:APPLICATION} =production
RewriteRule ^.*$ - [S=1]
RewriteRule ^(.*)$ html/$1.html
它所要做的就是获取url
/test
并将其转为参考
/html/test.html
在幕后,但只有当环境是生产环境时,这是由SetEnv设置的,可能我的mod rewrite已经生锈了,但如果我理解的话,这似乎与你所说的相反。若应用程序是生产型的,那个么它不会重写url(并且它跳过了可能的规则)。不过,我没有看到任何会导致内部服务器错误的情况 要做到你所说的,你需要做如下事情:
RewriteEngine On
SetEnv APPLICATION production
RewriteCond %{ENV:APPLICATION} !=production
RewriteRule ^.*$ - [S=1]
RewriteRule ^(.*)$ html/$1.html
如果仍然存在问题,请检查apache错误日志,该日志包含内部服务器错误500的最佳信息,或者按照Todd Gardner所说的那样执行,或者删除冗余规则并将条件绑定到第二个规则:
RewriteEngine On
RewriteCond %{ENV:APPLICATION} =production
RewriteRule ^(.*)$ html/$1.html
此外,我将使用此规则来避免递归:
RewriteCond %{ENV:APPLICATION} =production
RewriteRule !^html/ html%{REQUEST_URI}.html
打开mod rewrite日志以获取有用的错误
RewriteLog rewrite_log
ReWriteLogLevel 2
调整日志级别的详细程度。必须在字符串周围加引号才能正确比较
RewriteCond %{ENV:APPLICATION} !="production"