【问题标题】:remove query string from end of URL using .htaccess使用 .htaccess 从 URL 末尾删除查询字符串
【发布时间】:2012-12-13 20:18:50
【问题描述】:

我正在尝试从 URL 末尾删除字符串:

例如我有这样的结构:

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

我想从 URL 的末尾删除 ?post_type=question

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

谢谢。

【问题讨论】:

标签: url mod-rewrite


【解决方案1】:

很简单,只需使用:

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 /

【讨论】:

    【解决方案2】:

    只要做这样的事情:

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

    在末尾放置 ? 以删除存在的查询。

    【讨论】:

      猜你喜欢
      • 2012-05-11
      • 2015-02-10
      • 1970-01-01
      • 2021-08-18
      • 1970-01-01
      • 2014-08-07
      • 1970-01-01
      • 2018-07-17
      相关资源
      最近更新 更多