【问题标题】:htaccess Remove Query String on Redirecthtaccess 在重定向时删除查询字符串
【发布时间】:2012-09-30 09:22:54
【问题描述】:

我已经对此进行了一段时间的研究,并发誓我的解决方案应该按照以下方式工作(这里还有数百个其他人,所以请原谅我的重复):

Example 1 Example 2

我需要从重定向中删除查询字符串。旧 WordPress ?p=### 到新域/url。

Old Url: blog.domain.com/blog/?p=123
New Url: www.domain.com/yada/woohoo/

有了这个:

RewriteCond %{QUERY_STRING} ^p=123$
RewriteRule ^/blog/$ http://www.domain.com/yada/woohoo/?  [L,R=301]

我得到:http://www.domain.com/yada/woohoo/?p=123

我要:http://www.domain.com/yada/woohoo/

blog.domain.com 将在 DNS 级别重定向。

我错过了什么?这 ”?”在重写行的末尾应该删除查询字符串吗?

【问题讨论】:

    标签: wordpress .htaccess mod-rewrite redirect


    【解决方案1】:

    我刚刚尝试了你的代码,我唯一改变的是博客中的第一个 /,我让它完美地工作,没有查询字符串
    如果您运行的是 Apache > 2.4,那么您可以使用标志 QSD,否则,使用 ?最后它起作用了。还有其他规定吗?

    RewriteCond %{QUERY_STRING} ^p=123$
    RewriteRule ^blog/$ http://www.domain.com/yada/woohoo/?  [L,R=301]
    

    【讨论】:

    • 那额外的 / 我做出了改变。现在一切正常。谢谢!
    • 进一步检查。这适用于 www.domain.com/blog/?p=123 但不适用于 blog.domain.com/blog/?p=123。使用子域返回与以前相同的结果:www.domain.com/yada/woohoo/?p=123。
    猜你喜欢
    • 1970-01-01
    • 2014-02-02
    • 1970-01-01
    • 1970-01-01
    • 2012-08-16
    • 2014-11-11
    • 2016-02-05
    • 2019-08-09
    • 1970-01-01
    相关资源
    最近更新 更多