apache - 当某些字符串在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]
我怎样才能让它工作?
解决方案
如果 apache 版本是 2.4.0 或更高版本,您可以使用如下所示的 QSD 标志。
RewriteCond %{QUERY_STRING} guest [NC]
RewriteRule .* /web/LDAP [L,R=301,QSD]
推荐阅读
- .htaccess - 使用 htaccess 重定向 404 页面
- c# - MemoryStream 中的 APNS Payload 格式异常
- swift - 如果标签落在错误的目标上,如何触发通知?
- xamarin - Xamarin:CGImageSource.FromUrl 返回 null
- sql - SQL Server Enterprise 与 IBM iSeries as400 的可靠性和性能
- vb.net - VB.NET 中的空解引用
- bash - 如果我 curl 一个原始脚本并将该输出通过管道传输到 bash 解释器,我如何保留在检索到的脚本中设置的环境变量?
- python-3.x - 我怎样才能为这个类写一个单元测试?
- scala - Akka Cluster - 从崩溃的 actor 中恢复数据
- .htaccess - .htaccess 中不需要的重写