#apache #wordpress #.htaccess #mod-rewrite #url-rewriting
#apache #wordpress #.htaccess #мод-перезапись #url-переписывание
Вопрос:
Когда я устанавливаю для параметра адреса (URL) моего сайта WordPress значение = http://www.example.com
, сайт перенаправляет всех пользователей для доступа к сайту С префиксом ‘www.’:
(напримерhttp://example.com /… будет перенаправлено наhttp://www.example.com /…)
Когда я проверяю файл .htaccess, нет правила для обработки отсутствующего ‘www’. Как WordPress это делает?
Файл WordPress .htacess:
# BEGIN 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>
# END WordPress
Ответ №1:
The canonical.php именно в файле в папке wp-includes вашей установки WordPress происходит это особое волшебство — есть вызов wp_redirect, который отправляет заголовок 301: Moved Permanently с каноническим URL.
Черт возьми, это в значительной степени не связано с механизмом перезаписи / перенаправления в wp-includes/rewrite.php , который обрабатывает генерацию файла .htaccess и сохранение правил перезаписи структуры постоянных ссылок в опции WordPress (имя опции ‘redirect_rules’ в wp_options).