Как перенаправить запросы на example.com на www.example.com с помощью mod_rewrite? - PullRequest
2 голосов
/ 02 ноября 2009

Это мой .htaccess, сгенерированный WordPress, который находится в моем корневом каталоге.

Мне нужно изменить / добавить его, чтобы направить весь входящий трафик на www.example.com вместо example.com .

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Если кто-то захочет объяснить, что делает все вышеперечисленное, это также будет оценено.

1 Ответ

3 голосов
/ 02 ноября 2009

Чтобы сделать то, что вы просили, вы хотите добавить:

RewriteCond %{HTTP_HOST} ^www.mysite.com$ [NC] 
RewriteRule ^(.*)$ http://mysite.com/$1 [R=301,L]

Вы можете поместить это значение в скобки <IfModule mod_rewrite.c> после RewriteBase

Что касается того, что делает код WordPress htaccess (не проверял его): похоже, он проверяет любые прямые ссылки на файлы и каталоги и не пропускает их через RewriteRule, который обычно берет вашу ссылку и отправляет ее в индекс. PHP

Таким образом, если ваша ссылка предназначена для www.mysite.com/some/page, она удостоверяется, что / some / page не является прямой ссылкой на файл или действительным веб-каталогом, и если это не так, то она передает запрос в index.php, который анализирует его для отображения правильной страницы Wordpress.

...