这是一个远景,但我希望找到一个简单的解决方法,以解决一个奇怪的错误,只有在应用程序省略/推断查询字符串时才会显示。
在深入挖掘千行第三方javascript之前,我想知道是否可以使用mod_rewrite自动应用查询字符串。
RewriteRule ^index\.php$ index.php?module=Home&action=index
现在,这样可以正常工作,但有时所有数据都会被POST,所以我需要RewriteCond
,因此该规则只会触发GET
个请求,而不会触发POST
个请求。
这可能吗?
答案 0 :(得分:13)
我建议明确并且只在请求方法是GET时才触发RewriteRule,而不是在没有POST时,因为还有很多其他方法。所以你的重写条件可能如下所示:
RewriteCond %{REQUEST_METHOD} =GET
RewriteRule ^index\.php$ index.php?module=Home&action=index
答案 1 :(得分:12)
添加此条件......
RewriteCond %{REQUEST_METHOD} !POST
...与POST
次请求不匹配。
答案 2 :(得分:3)
来自the docs:
服务器变量:这些是
%{ NAME_OF_VARIABLE }
形式的变量,其中NAME_OF_VARIABLE
可以是从以下列表中获取的字符串:...
连接&请求:强>
...
REQUEST_METHOD
所以,是的。将RewriteCond
与该服务器变量一起使用。
答案 3 :(得分:0)
这对于GET请求很好用...
RewriteCond %{REQUEST_METHOD} ^GET [NC]