我在Wordpress中遇到过这种(对我而言)不合理的行为。
考虑一个使用WordPress的随机网站,该网站名为 example ,没有内容。这只是一个页面类型的帖子,而不是类别,标签或任何类型的层次结构。如果我在最后一个" /":
之后追加字符,则会触发404错误http://example.com/example/abc
我希望如果我只在决赛后输入数字" /"没有触发404错误。例如loading:
http://example.com/example/1123456
将我转到示例页面,数字保存在网址中。在这种情况下,这些数字没有特殊含义。那里可能有任何nuber,但我希望它能像其他网站那样触发404。
在索引或类别页面上为URL添加数字似乎仍会触发404,但不会触发帖子和页面。
我想知道这是WordPress的一个实际特征,如果是,那么它的目的是什么?
答案 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