Мод переписал конфликт - PullRequest
0 голосов
/ 13 февраля 2012

Я не могу сделать перенаправление с http на https: '(Мой фактический .htaccess выглядит как

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on    
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteCond %{REQUEST_URI} !^/(media|skin|js)/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule .* index.php [L]
</IfModule>

Я добавляю следующие строки

    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Но получаю конфликт спредыдущие строки.

Я помещаю http://www.example.com/lents/johnson.html?type=1 в URL.

И вместо того, чтобы получить то же самое с https

Я получаю https://www.example.com/index.php?type=1

СПАСИБО!

1 Ответ

0 голосов
/ 13 февраля 2012

Вы должны поставить свои правила перенаправления над всеми остальными, чтобы перенаправление происходило до того, как произойдет какое-либо переписывание URL:

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/(media|skin|js)/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [L]
...