【问题标题】:How to fix 301 permalink redirect for funky structure如何为时髦的结构修复 301 永久链接重定向
【发布时间】:2015-03-21 01:40:15
【问题描述】:

我正试图弄清楚如何为我的一些非常旧的 WordPress 新闻门户网站重定向永久链接结构,这些门户网站使用的是谷歌新闻和旧搜索引擎所需的时髦结构,但现在都是废话。

例如,我目前有:

mynewssite.xcom/2015/03/19/fnw14770_161419.php

我宁愿拥有的地方:

mynewssite.xcom/pretty-nameo-of-the-article-fnw14770/

我什至可以接受:

mynewssite.xcom/pretty-name-of-the-article-fnw14770_161419.php

我目前的 WordPress 永久链接结构是:

/%year%/%monthnum%/%day%/fnw%post_id%_%hour%%minute%%second%.php

我需要做一个 301 重定向到 /%postname%//%postname%-%post_id%/ 之类的东西,或者在最坏的情况下,像这样:

%postname%-fnw%post_id%_%hour%%minute%%second%.php

我不知道如何编写重写表达式。这是我目前拥有的,但它不起作用:

RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/fnw(\d+)_%hour%%minute%%second%.php$ http://floridanewswire.com/?p=$4

【问题讨论】:

    标签: permalinks redirect


    【解决方案1】:

    %hour%%minute%%second% 在 .htaccess 中不起作用,因为这是只有 WordPress 知道的元信息。相反,请尝试将其替换为匹配六位数的规则,例如 \d{6}

    此外,您应该删除不必要的捕获组,避开前向框格和圆点,并使用\d 而不是[0-9]

    这是您的表达的固定和简化版本:

    RedirectMatch 301 ^\/\d{4}\/\d{2}\/\d{2}\/fnw(\d+)_\d{6}\.php http://floridanewswire.com/?p=$1
    

    您应该能够在 Settings > Permalinks 管理菜单上将永久链接更改为更简洁的结构,并通过此 htaccess 规则重定向旧的永久链接。

    【讨论】:

    • 谢谢!是的,我知道永久链接结构在 htaccess 中不起作用,只是展示了 WP 永久链接设置的示例,因为我需要更改它以制作新的漂亮模式;然后是 htaccess 的 301 重定向匹配。我仍在学习 301 重定向的语法,因为只需要更改完整的站点 URL,而不是这些时髦的东西。我会试试这个并更新 - 谢谢! :-)
    猜你喜欢
    • 2012-07-09
    • 2012-04-18
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    相关资源
    最近更新 更多