【问题标题】:Remove query string from URL using .htaccess使用 .htaccess 从 URL 中删除查询字符串
【发布时间】:2021-08-18 13:19:35
【问题描述】:

我正在尝试使用 .htaccess 进行以下重定向。

重定向:

http://www.example.com/index.php?something@gmail.com

到这里:

http://www.example.com/index.php?something

所以基本上我只想在查询字符串出现时从查询字符串中删除@gmail.com,同时保留其他所有内容。

我尝试了以下方法:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*)@gmail.com$
RewriteRule (.*) $1?%1%2? [R=permanent]

不幸的是,即使在进行了多次调整后也无法正常工作。怎么了?

【问题讨论】:

  • 欢迎来到 SO,您能否提供诸如 uri something@gmail.com 之类的详细信息,应该注意后端的哪个文件?谢谢。
  • 抱歉不够清楚。处理页面为index.php。所以 URL 是这样的:website.com/index.php?something@gmail.com 我需要在出现时删除@gmail.com。所以它应该总是被重定向到:website.com/index.php?something
  • 这是有道理的,请使用相同的详细信息更新您的问题,谢谢。

标签: apache .htaccess redirect mod-rewrite url-rewriting


【解决方案1】:

使用您显示的示例/尝试,请尝试以下操作。请确保在测试您的 URL 之前清除您的浏览器缓存。请确保 htacces 和 index.php 文件位于同一级别的根文件夹中。

RewriteEngine ON
##Redirect rules to get index.php?something in browser here.
RewriteCond %{THE_REQUEST} \s/(index\.php)\?([^@]*)@.*\s [NC]
RewriteRule ^ /%1?%2 [R=301,L]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    • 2012-12-13
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多