php - 将规则重定向到 php 查询,但删除请求的 url 中的任何查询字符串
问题描述
我的 url 正在使用 .htaccess 重定向,如下所示:
RewriteRule ^b/([^/]+)/([^/]+)? b/view.php?id=$2&name=$1
友好的 url -> 转换为 php url
domain.com/b/hello/2 -> b/view.php?id=2&name=hello
但是当有人以如下方式访问该站点时:
domain.com/b/hello/2?query=xyz
我不知道如何摆脱?query=xyz
我已经尝试了包括 [QSD] 在内的所有方法,但我似乎无法让它工作。
更新
我已经设法让它与以下内容一起工作,但它做了两个 301 重定向而不是一个:
RewriteCond %{THE_REQUEST} \?[^\ ]+
RewriteRule ^b/(.*)$ /x/$1? [R=301,L]
RewriteRule ^b/([^/]+)/([^/]+)/([^/]+)?$ b/view.php?id=$2&&name=$1
解决方案
检查在规则末尾添加问号是否会取消从左侧附加的查询字符串
RewriteRule ^b/([^/]+)/([^/]+)? b/view.php?id=$2&name=$1? [QSD,L]
推荐阅读
- console - Spring Tool Suite 4 控制台颜色问题
- python - 如何在python中读取条形码?
- javascript - 开玩笑清理 Express 服务器设置
- apache - Apache2 将 https://www 重定向到 https://non-www
- vba - 我想通过 VBA 将所有突出显示和阴影的文本从 Word 文件连同颜色一起复制到 Excel
- c# - 在 ASP.NET Core 2.0 中将 JSON 对象作为 JWT 令牌的声明传递
- c++ - 我可以在 vb.net windows 窗体应用程序中使用 COleControlModule 吗?
- matlab - 在 Matlab 中的 fcontour 中标记轮廓线
- python - 如何覆盖 AssertionError
- python - 从pycharm中的重组文本文件中删除面包屑