【问题标题】:Complex old site URL redirect (301) with query string not working (WordPress site)复杂的旧站点 URL 重定向 (301),查询字符串不起作用(WordPress 站点)
【发布时间】:2018-02-21 10:34:48
【问题描述】:

我有一个奇怪的情况,我一直在努力解决,我之前已经做了很多次 301 重定向,但这让我很难过,我正在努力寻找任何对类似堆栈溢出有用的东西(我真的试过了!)

我有一个新站点,URL 结构与旧站点结构完全不同(新站点建立在 WordPress 之上,具有通常的 htaccess 重写规则的永久链接)。

没有可重复使用的 URL 模式或关联 - 我只想要从旧 URL 到新 URL 的硬重定向。

我认为要么是 .asp 部分搞砸了,要么可能是查询变量 - 我尝试了很多不同的东西,但没有任何运气 - 我真的很感激这方面的帮助!

这显然是行不通的:

Redirect 301 /info/index.asp?page=a-string-here https://newsite.com/new-page-link/

这就是我想要做的:

旧网址示例:

/info/index.asp?page=a-string-here

新网址示例

/something-completely-different

【问题讨论】:

    标签: wordpress .htaccess redirect mod-rewrite url-redirection


    【解决方案1】:

    如果页面仅由“页面”查询字符串变量定义,那么您可以使用如下内容:

    RewriteCond %{QUERY_STRING} page=a-string-here
    RewriteRule .*$ /something-completely-different? [L,R=301]
    

    如果不让我了解更多有关旧 URL 的结构。

    注意事项:
    - 将单个? 附加到替换字符串以从中删除现有的查询字符串。如果你想保留旧的 querstring,即/something-completely-different?page=a-string-here,然后删除?
    - 如果您想添加新的查询字符串数据,您可以自然地添加它,在 ? 之后,如下所示:/something-completely-different?new=var
    - 最后,要在保留旧变量的同时添加新变量,请将 QSA 标志添加到 RewriteRule 标志。即[QSA, L,R=301]
    (Source)

    【讨论】:

    • NICE - 谢谢 - 还有笔记!!我会做一个测试 - 还有一些其他页面,但它们没有页面查询参数,所以我不应该对这些有问题;)
    • 是的! 谢谢 - 效果很好 - 标记为已接受,您是绅士和学者!
    猜你喜欢
    • 2015-01-14
    • 2019-08-02
    • 1970-01-01
    • 2019-07-03
    • 2017-10-20
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 2012-02-06
    相关资源
    最近更新 更多