用户可以访问包含不需要的网址的网页

时间:2017-10-14 18:17:53

标签: php wordpress url

我在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?

1 个答案:

答案 0 :(得分:0)

不确定。 我建议在早期事件中添加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”),其中Location头指示正确的URL。

将它放入你的functions.php。

有趣的是,WordPress会自动将/ 123 / postti重​​定向到/ 123 / posttitle,但对于/ 123它不会相同。 / 123 /将被重定向到/ 123。我发布的代码片段将处理/ 123和/ 123 /,而wordpress负责处理部分标题的代码片段。

相关问题