Код .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>
Я гугле и выяснил , что -f
и -d
дают существующим каталогам и файлам более высокий приоритет.
Но тогда что дает это ^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']
) и он вызывает правильный код для отображения страницы запрошенную пользователем.