Wordpress https://example.com не перенаправляется на https://www.example.com htaccess

Я использую WordPress и недавно перешел в https. У меня были некоторые проблемы, поскольку домен не перенаправлялся должным образом.

В настоящее время он работает нормально, но https://example.com не перенаправляется на https://www.example.com

Я пробовал много способов, но я пока не добился успеха.

Вот мой htaccess:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^example.co.uk [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.co.uk/$1 [R,L]
# 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
# BEGIN rlrssslReallySimpleSSL rsssl_version[2.1.12]
# END rlrssslReallySimpleSSL
<IfModule mod_expires.c>
    ExpiresActive on

    ExpiresByType image/jpg "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
</IfModule>
2 голоса | спросил lee 11 PM00000030000000131 2015, 15:14:01

1 ответ


1

Похоже, вы просто не указали флаг OR:

RewriteCond %{HTTP_HOST} ^example\.co\.uk [NC,OR]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.co.uk/$1 [R,L]

Доступ к общему домену осуществляется через OR, через который вы получаете доступ через HTTP, затем перенаправляете. Оператор по умолчанию: AND условия.

Кроме того, избегайте точек в вашем регулярном выражении.

Измените R (временно) на R=301 (постоянный), когда вы уверены, что он работает нормально.

UPDATE: Возможно, что SERVER_PORT может не сообщать правильный порт (см. UseCanonicalPhysicalPort ). В качестве альтернативы вы можете вместо этого использовать переменную HTTPS:

RewriteCond %{HTTPS} off

Другой альтернативой является проверка того, что хост не запускает www, а не тестирует на равенство. Итак, вкратце:

RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
ответил MrWhite 11 PM00000040000001631 2015, 16:29:16

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132