WordPress 永久链接如何工作(在技术层面)

How do WordPress permalinks work (at a technical level)

我是 WordPress 新手,正在处理一系列涉及永久链接的问题。我已经在我的网站上使用了 /%postname% 样式的固定链接,但我无法弄清楚 它们是如何工作的 —— URL包含通常类型的 /words-from-the-title 东西得到 rewritten/redirected/whatever 到正确的 post.

我在根目录的 .htaccess 文件中有默认的东西:

# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

但是,鉴于我对 Apache 重写规则的相当了解,我不明白这是如何进行映射的。我有一半希望我的 .htaccess 文件会被一堆 RewriteRule 语句填满,每个页面都需要重定向,但这似乎并没有发生。无论如何,任何人都可以帮助我的好奇心吗?谢谢!

默认的 WordPress .htaccess 文件仅通过 index.php 重定向所有请求(来自基础 URL)——这将处理所有重写。所以重写逻辑都在 WordPress 的代码库中。这就是为什么你不需要为每个 post.

重写规则

查看 this source file 以更深入地了解逻辑部分。

真正了解 WordPress 工作原理的一个很好的练习是从 index.php(入口点)开始并检查代码带给您的位置。