Wordpress如何处理URL?

时间:2015-12-01 06:46:19

标签: php wordpress

我在Wordpress中遇到过这种(对我而言)不合理的行为。

考虑一个使用WordPress的随机网站,该网站名为 example ,没有内容。这只是一个页面类型的帖子,而不是类别,标签或任何类型的层次结构。如果我在最后一个" /":

之后追加字符,则会触发404错误

http://example.com/example/abc

我希望如果我只在决赛后输入数字" /"没有触发404错误。例如loading:

http://example.com/example/1123456

将我转到示例页面,数字保存在网址中。在这种情况下,这些数字没有特殊含义。那里可能有任何nuber,但我希望它能像其他网站那样触发404。

在索引或类别页面上为URL添加数字似乎仍会触发404,但不会触发帖子和页面。

我想知道这是WordPress的一个实际特征,如果是,那么它的目的是什么?

3 个答案:

答案 0 :(得分:3)

这是按照设计的。 Wordpress通过内置的重写模块匹配URL。你可以阅读它here。此外,跟踪此过程所发生情况的源代码位于wp-content / class-wp-rewrite.php中。

提供您所看到的行为的具体行位于下方。

[(.?.+?)(?:/([0-9]+))?/?$] => index.php?pagename=$matches[1]&page=$matches[2]

此代码将匹配页面/后名称以及任何后续数字(这支持分页)。但是,它不会匹配帖子名称后的非字符。有趣的是,即使帖子没有指定的页面,它仍然会被认为是合法的。

答案 1 :(得分:1)

是的,这是一个奇怪的,但可能是设计。

http://ww.example.com/mypage/ 200(预期)

http://ww.example.com/mypage/idontexist 404(预期)

可是:

http://ww.example.com/mypage/0000 200(意外)

我认为这可能与WP如何使用归档ID和日期作为永久链接结构/重写的一部分有关。

答案 2 :(得分:1)

我们都知道WordPress通过内置的重写模块工作。因此,它还会为您的所有帖子提供固定链接功能,您可以通过它设置永久链接。让我们通过基于WordPress的博客查看关于永久链接的详细信息。在这里,我们使用链接http://codex.wordpress.org/Introduction_to_Blogging#Pretty_Permalinks

如果要重新构建所有URL,则需要编辑此文件。

$permalink_structure 

数据库中的永久链接结构。这是您在“永久链接选项”页面上设置的内容,包括'tags' like %year%, %month% and %post_id%.

有关永久链接结构的更多详细信息,您可以浏览此链接。 http://codex.wordpress.org/Class_Reference/WP_Rewrite