这是WordPress中的.htaccess代码.有人能解释它是如何工作的吗?

web*_*at0 39 php apache wordpress .htaccess

这是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>
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索,发现它-f-d部分意味着给真正的目录和文件更高的优先级.

那么是什么是^index\.php$ - [L]RewriteRule . /index.php [L]

WordPress如何使用此处理类别,标签,页面等?

它是在内部发生的吗?如果是这样,我有兴趣学习如何在PHP中完成它.

谢谢

Kev*_*ker 54

^index\.php$ - [L]防止index.php重写请求,以避免不必要的文件系统检查.如果请求是针对index.php该指令什么也不做,-并停止处理规则[L].

这个块是一个规则,并且它表示如果它不是真实文件而不是真实目录,请将请求重新路由到index.php.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Run Code Online (Sandbox Code Playgroud)

index.php本身解释客户端请求的URL(PHP可以看到所请求的URL $_SERVER['REQUEST_URI']),并调用正确的代码来呈现用户请求的页面.

  • `RewriteRule ^ index\.php $ - [L]`:不是多余的,因为`index.php`确实是一个真正的文件(因此命中`RewriteCond%{REQUEST_FILENAME}!-f`)? (2认同)