首页 > 解决方案 > 如何从我的 URL 中删除查询字符串?

问题描述

我希望从我的 URL 中删除一个查询字符串,如下所示:

该 URL 当前如下所示:

http://example.com/?s=cadeira&dgwt-wcas-search-submit=&post_type=product&dgwt_wcas=1

我想要的是:

http://example.com/?s=cadeira

我不是很擅长.htaccess,有人可以帮助我吗?

标签: wordpress.htaccessmod-rewrite

解决方案


在我的网址中删除查询字符串?

“查询字符串”是?URL 中的所有内容。您指的是查询字符串中的单个 URL 参数。

为了只保留s查询字符串中的 URL 参数并删除其他所有内容,您可以在根文件的顶部执行以下操作:.htaccess

RewriteCond %{QUERY_STRING} (?:^|&)(s=[^&]+)
RewriteRule ^$ /?%1 [R=302,L]

这仅匹配对文档根的请求(即空的 URl 路径)。如果sURL 参数没有出现在查询字符串中,那么什么也不会发生。%1反向引用与s=<value>查询字符串中的部分匹配。查询字符串中的所有其他内容都将被丢弃。

请注意,这将匹配s=查询字符串中任何位置的 URL 参数。在您的示例中,这出现在查询字符串的开头。如果您只想s=在查询字符串开头出现匹配时匹配,则将CondPattern更改为读取:^(s=[^&]+)。IE。RewriteCond %{QUERY_STRING} ^(s=[^&]+).

发出 302(临时)重定向以实际从查询字符串中删除其他 URL 参数。


推荐阅读