2017-01-26 3 views
1

Я создал перенаправление с не-www и www http-запросов на https и запрос www, что было довольно просто. Я использовал следующие правила в .htaccesswww и non-www http-запросы к https: // www с полным путем

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

Но теперь проблема в том, когда кто-то входит старый незащищенный URL как домен и проект-about.html в конце .htaccess перенаправления HTTPS, но добавляет запрос в конце снова поэтому запрос после домена выглядит следующим образом:

/project-about.htmlproject-about.html 

Как его исправить? Благодаря

ответ

1

Изменить его к этому:

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule^https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
RewriteCond %{HTTPS} off 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
+0

Это работает очень хорошо, даже без дополнительной перенаправления. Протестировано и подтверждено. Спасибо –

1

Используйте это:

RewriteEngine On 

RewriteCond %{HTTP_HOST} !^www\. [NC,OR] 
RewriteCond %{HTTPS} !=on 
RewriteRule^https://www.example.com%{REQUEST_URI} [R=301,L,NE] 

Этот метод устраняет необходимость в дополнительной RewriteRule также, что помогает ускорить ваш веб-сайт.

Перед тестированием убедитесь, что вы очистили кеш.

+0

Это добавляет дополнительный www, если запрашиваемый url содержит www уже. –

+1

@Igor Это не добавляет дополнительный www к запросу. Очистите кэш. – starkeen

+0

Как @starkeen сказал, и что я вложил в мой ответ, пожалуйста, очистите свой кеш. – Lag

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