Это код .htaccess для постоянных ссылок в WordPress. Я не понимаю, как это работает. Может кто-нибудь объяснить?
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
Я googled и узнал, что -f
и -d
часть означает, чтобы дать реальным каталогам и файлам более высокий приоритет.
Но тогда что такое ^index\.php$ - [L]
и RewriteRule . /index.php [L]
RewriteRule . /index.php [L]
?
Как WordPress обрабатывает категории, теги, страницы и т. Д. Только с этим?
Это происходит внутри? Если это так, мне интересно узнать, как это сделать в PHP.
благодаря
^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 может видеть запрошенный URL-адрес с помощью $_SERVER['REQUEST_URI']
), и он вызывает правильный код для отображения страницы, которую запросил пользователь.