这是WordPress中永久链接的.htaccess代码。我不明白这是如何工作的。有人可以解释一下吗?
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
我用Google搜索并发现-f
和-d
部分意味着为真正的目录和文件提供更高的优先级。
但是^index\.php$ - [L]
和RewriteRule . /index.php [L]
是什么?
WordPress如何使用此处理类别,标签,页面等?
是否在内部发生?如果是这样,我有兴趣学习如何在PHP中完成它。
由于
答案 0 :(得分:54)
^index\.php$ - [L]
阻止重写index.php
请求,以避免不必要的文件系统检查。如果请求是针对index.php
的,则该指令不执行任何操作-
并停止处理规则[L]
。
这个块只是一个规则,它表示如果它不是真实文件而不是真实目录,请将请求重新路由到index.php
。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
index.php本身解释客户端请求的URL(PHP可以使用$_SERVER['REQUEST_URI']
查看请求的URL)并调用正确的代码来呈现用户请求的页面。