modrewrite и перенаправить на https с www - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь использовать mod_rewrite и перенаправить al * ltrafi c на https версию. с www. Я перепробовал много комбинаций и не могу найти окончательного решения. В настоящее время у меня есть:

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{HTTP:X-Forwarded-Proto} !https
  RewriteCond %{HTTP_HOST} ^(www\.)?ppp.cz
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
  RewriteRule ^$ public/ [L]
  RewriteRule (.*) public/$1 [L]
</IfModule>

Это работает, если пользователь вводит URL с www. Si Я пытался улучшить код до (Где условие для ситуации, когда URL-адрес без www.):

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{HTTP:X-Forwarded-Proto} !https
  RewriteCond %{HTTP_HOST} ^(www\.)?ppp.cz
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
  RewriteCond %{HTTP:X-Forwarded-Proto} !https
  RewriteCond %{HTTP_HOST} ^ppp\.cz
  RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI} [L]
  RewriteRule ^$ public/ [L]
  RewriteRule (.*) public/$1 [L]
</IfModule>

Но он все еще не делает то, что мне нужно сделать. В настоящее время я безнадежен. (Условие с общественностью / во всех случаях работает.) Может ли кто-нибудь помочь? Спасибо

Чего я хочу добиться, это http://ppp.cz -> https://www.ppp.cz; http://www.ppp.cz -> https://www.ppp.cz

1 Ответ

0 голосов
/ 04 марта 2020

Ну, я решил это так.

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{HTTP:X-Forwarded-Proto} !https
  RewriteCond %{HTTP_HOST} ^ppp\.cz
  RewriteRule ^(.*)$  https://www.ppp.cz/$1 [R=301,L]
  RewriteCond %{HTTP:X-Forwarded-Proto} !https
  RewriteCond %{HTTP_HOST} ^www.ppp.cz
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
  RewriteRule ^$ public/ [L]
  RewriteRule (.*) public/$1 [L]
</IfModule>
...