Htaccess:从网址中删除查询并重定向

时间:2018-05-24 15:29:37

标签: regex .htaccess

我的网站上有一个论坛,需要重定向奇怪的生成网址。

每个网址都包含?id=,例如:

https://www.example.com/forum/topic/casualthread/page/25?id=casualthread

我需要删除?id=及其后的所有内容才能拥有:

https://www.example.com/forum/topic/casualthread/page/25

我正在尝试修改我在Stackoverflow上找到的代码,结果非常稀少:

RewriteEngine On
RewriteBase /
# Make sure there is a query string
RewriteCond %{QUERY_STRING} .
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .*  /?id= [R=301,L]

我正在编辑的htaccess文件位于论坛目录中: https://www.example.com/forum/

并将所有内容重定向到主页https://www.example.com:我做错了什么?

2 个答案:

答案 0 :(得分:3)

您可以使用此

RewriteEngine on


RewriteCond %{QUERY_STRING} id=
RewriteRule ^ %{REQUEST_URI}? [L,R]

答案 1 :(得分:0)

由于不仅id,而且查询字符串中可能还存在其他一些参数,请使用:

RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} ^(.*)(^id=[^&]*&?|&id=[^&]*)(.*)$
RewriteRule ^(.+) /$1?%1%3 [R=301,L]