使用.htaccess从URL末尾删除查询字符串

时间:2012-12-28 15:18:45

标签: url mod-rewrite

我试图从网址末尾删除字符串:

例如我有这样的结构:

http://sitename.com/category/first-category-name/?post_type=question
http://sitename.com/category/second-category-name/?post_type=question
http://sitename.com/category/...-category-name/?post_type=question

我想从网址末尾删除?post_type=question

我在stackoverflow上找到了很多例子,但没有人适合我。

谢谢。

2 个答案:

答案 0 :(得分:11)

很简单,只需使用:

RewriteCond %{QUERY_STRING}    "post_type=" [NC]
RewriteRule (.*)  /$1? [R=301,L]

如果要将其添加到wordpress网站,则需要在任何wordpress规则之前添加它:

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

但是

之后
RewriteBase /

答案 1 :(得分:2)

做这样的事情:

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

在结尾放置?以删除查询。