2016-01-22 5 views
0

Я хочу, чтобы мой веб-сервер перенаправлял все HTTP-запросы на https. Так что я создал мой .htaccessMy .htaccess перенаправление на https создает 404

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

Перенаправление, кажется, работает, но когда я вхожу _http: //example.com/test/ перенаправляет к _https: //example.com/httpdocs/test/ который вызывает ошибку 404. Если я иду прямо в _https: //example.com/test/, все работает!

ответ

0

Thank Simone, Ваше решение не сработало для меня.

Я обнаружил, что

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

работает для меня.

2

HTTP_HOST Использование, не SERVER_NAME:

RewriteEngine on 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L] 

См https://serverfault.com/questions/570288/is-it-bad-to-redirect-http-to-https

Кроме того, убедитесь, что у вас нет других правил, которые противоречат этому. Возможно, вы захотите продвинуть это в качестве первого правила (учитывая, что он имеет флаг L).

+1

Превосходная косая черта не требуется в шаблоне перезаписи. –

+0

Вы правы, я удалил его. –

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