首页 > 解决方案 > 当某些字符串在url中时如何重定向到主页

问题描述

我想重定向一个包含“guest”一词的 URL,例如:
https://example/web/mxOYPIE6cpymvkM5TEGMvI4UYXXQT4WTMEaDrE5q7eo%5B*/!STANDARD?pyActivity=Data-Admin-Operator-ID%2epxGetAllOperators&pzAuth=guest

它需要重定向到: https://example/web/LDAP

我尝试了以下方法:

RewriteCond %{QUERY_STRING} guest [NC]  
RewriteRule .* https://example/web/LDAP [L,R=301]

但这会将其重定向到:
https://example/web/LDAP?mxOYPIE6cpymvkM5TEGMvI4UYXXQT4WTMEaDrE5q7eo%5B*/!STANDARD?pyActivity=Data-Admin-Operator-ID%2epxGetAllOperators&pzAuth=guest

所以 https://example/web/ 后面的完整字符串粘贴https://example/web/LDAP后面

如果我这样做,人们会得到403,但这不是很专业。

RewriteCond %{QUERY_STRING} guest [NC]
RewriteRule .* - [F]

我怎样才能让它工作?

标签: apacheredirect

解决方案


如果 apache 版本是 2.4.0 或更高版本,您可以使用如下所示的 QSD 标志。

RewriteCond %{QUERY_STRING} guest [NC]  
RewriteRule .* /web/LDAP [L,R=301,QSD]

参考http://httpd.apache.org/docs/2.4/rewrite/flags.html


推荐阅读