繁体   English   中英

如果特定 GET 变量包含非数字字符,如何使用 .htaccess 重定向?

[英]How can I use .htaccess to redirect if a particular GET variable contains non-numeric characters?

我需要一个 .htaccess 规则来检查查询字符串中的特定变量(可能存在也可能不存在)并重定向到同一页面,减去查询字符串,如果变量不是五位数。

例如:

https://www.example.com/mypage?myvar=12345       // This one is fine
https://www.example.com/mypage?myvar=987         // This one isn't
https://www.example.com/mypage?myvar=12-3a       // Neither is this one
https://www.example.com/mypage?othervar=whatever // Don't need to check this one

我知道它不可能太复杂,但不知何故我还没有找到任何有效的东西。

终于想通了:

<ifModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{QUERY_STRING} myvar= [NC]
    RewriteCond %{QUERY_STRING} !(^|&)myvar=[0-9]{5}($|&) [NC]
    RewriteRule (.*) $1? [L,R=302,NC]
</IfModule>

这可能不是最好的方法(欢迎评论!)但它按预期工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM