2016-01-13 2 views
0

Я хотел бы перенаправить пользователей, входящих в мой веб-сайт, размещенный на сайте Wordpress, от HTTP до HTTPS и в то же время поддерживать довольно URL. Как достичь этого? Я уже пробовал несколько разрешений, но это не работает. (примеры ниже)Как перенаправить HTTP на HTTPS с хорошими URL-адресами?

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

#This is first attempt 
#RewriteCond %{HTTPS} =off 
#RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L] #Tested here some flags, no success 

#This is second attempt 
#RewriteCond %{HTTPS} =off 
#RewriteRule ^(.*)$ - [env=ps:https] 

#This is third attempt 
#RewriteCond %{SERVER_PORT} ^([0-9]+s)$ 
#RewriteRule ^(.*)$ - [env=ps:https] 

#This is fourth try 
#RewriteCond %{HTTPS} =off 
#SSLOptions +StrictRequire 
#SSLRequireSSL 
#SSLRequire %{HTTP_HOST} eq "example.com" 

#This is fifth attempt 
RewriteCond %{HTTPS} !=on 
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] 

# This is Wordpress pretty URLS (Has to stay!) 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

</IfModule> 

Все, что я получил, был цикл перенаправлений (301 или 302) или на страницу с «Найдено здесь», где «здесь» был якорь моего домена:/ Забыл упомянуть, что я могу редактировать только .htaccess.

+0

Почему вы не используете для этого плагин? Там достаточно. Например [ForceSSL] (https://de.wordpress.org/plugins/wp-force-ssl/) – 0x4Dark

+0

@ 0x4Dark Этот плагин не является необходимым фрагментом кода, который я хочу опустить. – Marecky

ответ

1

Я нашел этот ответ https://serverfault.com/a/678402/102060, который мне помог. Оказалось, что Webfaction использует какой-то loadbalancer, который не раскрывает себя, отправляя определенные заголовки. Я пробовал этот слепой сложенный, и он работает!

### Force HTTPS 
RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
Смежные вопросы