【问题标题】:users can visit pages with an unwanted URL用户可以访问带有不需要的 URL 的页面
【发布时间】:2017-10-14 18:17:52
【问题描述】:

我在我的 Wordpress 网站中使用此结构作为我的帖子 URL。

Domain.com/%post_id%/%postname%

如果您删除 /%postname% 部分,您会转到同一页面吗? 我的意思是

Domain.com/post_id/postname = domain.com/post_id

当用户访问 domain.com/post_id 时,有什么方法可以重定向到 Domain.com/post_id/postname ?

【问题讨论】:

    标签: php wordpress url


    【解决方案1】:

    当然。 我建议在早期活动中添加action hook,也许是wp?

    add_action("wp", function() {
        if((is_single() || is_page()) && preg_match("!^/\d+/?$!", $_SERVER["REQUEST_URI"])) {
            http_response_code(301);
            header("Location: " . get_permalink());
            exit;
        }
    });
    

    这将在每个请求上运行,并检查该请求是 a) 页面还是帖子以及 b) REQUEST_URI(= URL 的本地部分)以斜杠开头,后跟数字,然后是可选的最终斜杠,没有别的了。如果满足这两个条件,它将返回一个 HTTP 301 响应代码(“Redirect Permanent”),并带有指示正确 URL 的 Location 标头。

    把它放到你的functions.php中。

    有趣的是,WordPress 会自动将 /123/postti 重定向到 /123/posttitle,但对于 /123 不会相同。 /123/ 将被重定向到 /123。我贴的代码 sn-p 会处理 /123 和 /123/,而 wordpress 会处理那些有部分标题的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-07
      • 1970-01-01
      • 1970-01-01
      • 2012-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多