Правило перенаправления на .htaccess не работает для базового URL - PullRequest
0 голосов
/ 07 декабря 2018

Мой файл .htaccess был

RewriteEngine On

RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
RewriteCond %{REQUEST_URI} ^/(cust1|cust2|cust3)
RewriteRule (.*) /mysitecustomer/$1 [R=301,L]

Я хотел перенаправить весь HTTP на HTTPS, поэтому я изменил .htaccess согласно этой ссылке .

Не работает: http не перенаправляет на https, он остается на http.Например, когда я захожу на сайт http://www.mywebsite.com, он остается на http: // и показывает «небезопасно».Мне нужно, чтобы он перенаправил на https, чтобы «небезопасный» исчез.

Новый .htaccess

RewriteEngine On

RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
RewriteCond %{REQUEST_URI} ^/(rb|LakmeLever|Itc)
RewriteRule (.*) /mysitecustomer/$1 [R=301,L]

#http to https redirect
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mywebsite\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.mywebsite.com/$1 [R,L]
#

Но все же http не перенаправляется на https

Редактировать 1 (попытка не сработала)

RewriteEngine On

RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
RewriteCond %{REQUEST_URI} ^/(rb|LakmeLever|Itc)
RewriteRule (.*) /mysitecustomer/$1 [R=301,L]

#Siddharth http to https redirect
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.mywebsite.com [R=301,L]

Редактировать 2 (Попробовать не сработало)

RewriteEngine On

RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
RewriteCond %{REQUEST_URI} ^/(rb|LakmeLever|Itc)
RewriteRule (.*) /mysitecustomer/$1 [R=301,L]

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

Редактировать3 (пробовал, не работало)

RewriteEngine On

RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
RewriteCond %{REQUEST_URI} ^/(rb|LakmeLever|Itc)
RewriteRule (.*) /mysitecustomer/$1 [R=301,L]

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

Редактировать 4 (пробовал, не работало)

RewriteEngine On
RewriteCond %{HTTPS} off
# First rewrite to HTTPS:
# Don't put www. here. If it is already there it will be included, if not
# the subsequent rule will catch it.
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Now, rewrite any request to the wrong domain to use www.
# [NC] is a case-insensitive match
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

1 Ответ

0 голосов
/ 07 декабря 2018
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Я использовал этот код на своем сайте, и он отлично работает.Пожалуйста, попробуйте это.

Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...