У меня есть сайт, построенный на PHP на базовом домене. Я установил WordPress блог на / блог. Для целей SEO я сделал каноническое перенаправление на базовый домен с кодом
RewriteCond %{HTTP_HOST} ^domainname\.com
RewriteRule ^(.*)$ http://www.domainname\.com$1 [L,R=301]
Однако это создает цикл перенаправления, когда я пытаюсь получить доступ к www.domainname.com/blog. Базовый сайт работает, как и ожидалось, без проблем. Файл htaccess, связанный с WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
Поскольку каноническое перенаправление важно для SEO, мне нужен этот код для базового домена. Как можно исправить проблему блога, в то же время заставляя работать канонические перенаправления? Любые идеи будут полезны. Заранее спасибо.
Измените свою конфигурацию на это:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Других решений пока нет …