【问题标题】:htaccess - allow certain parameters but redirect to 404 if other query stringhtaccess - 允许某些参数,但如果其他查询字符串重定向到 404
【发布时间】:2015-10-22 01:20:05
【问题描述】:

以下问题: 我在页面上有一个表单,并希望允许某些参数启用表单值覆盖。但是如果url中有问号而没有任何参数我想重定向到404页面。

但是我的正则表达式不能很好地工作......

RewriteCond %{QUERY_STRING} !^(a=.*|b=.*|c=.*)
RewriteRule ^subfolder/(.*)$ - [R=404,L,NC]

但现在我的页面只有在设置了参数时才会显示。 http://example.com/subfolder/ 不起作用,但 http://example.com/subfolder/?a=whatever 起作用。如果有一个没有我的参数的问号,我只想要一个重定向。该怎么做?

【问题讨论】:

    标签: regex .htaccess mod-rewrite redirect


    【解决方案1】:

    你可以使用这条规则:

    RewriteCond %{QUERY_STRING} .
    RewriteCond %{QUERY_STRING} !(^|&)(a|b|c)= [NC]
    RewriteRule ^subfolder/(.*)$ - [R=404,L,NC]
    

    第一个条件 RewriteCond %{QUERY_STRING} . 确保 QUERY_STRING 不为空。

    【讨论】:

    • 谢谢!像魅力一样工作;)
    猜你喜欢
    • 2015-12-10
    • 1970-01-01
    • 1970-01-01
    • 2020-12-14
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多