2014-01-04 5 views
0

Я только что изменил свой сайт http на https. Я уже перенаправил http на https-версию. Я также хочу перенаправить www-версию на www. Пока это не удалось.url rewriting для перенаправления www на non www по https

http://www.domain.com =>https://domain.com

https://www.domain.com =>https://domain.com

Вот файл .htaccess;

<ifModule mod_rewrite.c> 
    RewriteEngine On 
     redirect 301 /makale /sozluk 
     RewriteCond %{REQUEST_FILENAME} !-s 
     RewriteRule ^(.*)\.[\d]+\.(css|js)$ $1.$2 [L] 

     RewriteCond %{HTTPS ^www.sporapp.com$ [NC] 
     RewriteRule ^(.*)$ https://sporapp.com/$1 [R=301,L] 

     RewriteCond %{HTTPS} !=on 
     # This checks to make sure the connection is not already HTTPS 
     RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php/$1 [NC,QSA,L] 
</ifModule> 

спасибо.

ответ

1

Вы должны удалить этот бит:

RewriteCond %{HTTPS ^www.sporapp.com$ [NC] 
RewriteRule ^(.*)$ https://sporapp.com/$1 [R=301,L] 

RewriteCond %{HTTPS} !=on 
# This checks to make sure the connection is not already HTTPS 
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

И добавить этот раз под RewriteEngine On:

RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} ^www\.sporapp\.com$ [NC] 
RewriteRule ^(.*)$ https://sporapp.com/$1 [R=301,L] 

Вы должны иметь перенаправление происходит перед тем перезаписи, в противном случае запрос получает изменен прежде чем он будет перенаправлен.

Кроме того, у вас есть mod_alias директивы, которые будут мешать переписывания в /index.php:

redirect 301 /makale /sozluk 

Должно быть:

RewriteRule ^makale/(.*)$ /sozluk/$1 [L,R=301] 
+0

не работает. https://www.sporapp.com/ www все еще остается, поэтому я получаю предупреждение от браузера, потому что ssl только для sporapp.com не для www.sporapp.com –

+0

@tylerdurden вы получите это предупреждение независимо от того, что. Согласование SSL происходит **, когда вы устанавливаете соединение **, и это * перед * любой запрос когда-либо отправляется на сервер. Поэтому вам нужно купить сертификат подстановки, если вы хотите, чтобы это работало. –

+0

ohh я вижу, после того, как я нажму ОК, он перенаправил меня на версию без www. так что деньги говорят :) спасибо человеку! –

Смежные вопросы