以下问题: 我在页面上有一个表单,并希望允许某些参数启用表单值覆盖。但如果网址中有一个问号而没有任何参数我想重定向到404页面。
但是我的正则表达式并没有很好地运作......
RewriteCond %{QUERY_STRING} !^(a=.*|b=.*|c=.*)
RewriteRule ^subfolder/(.*)$ - [R=404,L,NC]
但现在我的页面只显示是否设置了参数。 http://example.com/subfolder/不起作用,但http://example.com/subfolder/?a=whatever有效。如果有一个没有任何参数的问号,我只想要一个重定向。怎么做?
答案 0 :(得分:3)
您可以使用此规则:
RewriteCond %{QUERY_STRING} .
RewriteCond %{QUERY_STRING} !(^|&)(a|b|c)= [NC]
RewriteRule ^subfolder/(.*)$ - [R=404,L,NC]
第一个条件RewriteCond %{QUERY_STRING} .
确保QUERY_STRING非空。