RewriteEngine для перенаправления SSL - PullRequest
0 голосов
/ 11 апреля 2019

Соответствующий раздел моего .htaccess вставлен ниже. Прекрасно работает, за исключением ... Если я набираю https://mydomain/abc.php,, он не перенаправляется на https://mydomain/www/abc.php. С другой стороны, если я набираю http://mydomain/abc.php,, он правильно перенаправляет на https://mydomain/www/abc.php. Я хочу, чтобы оба перенаправили на https://mydomain/www/abc.php. Ваша помощь с необходимой настройкой регулярного выражения (моя слепая точка) будет принята с благодарностью.

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

1 Ответ

1 голос
/ 11 апреля 2019

Если вы используете apache, использование файла .htaccess для перенаправления не рекомендуется.(Вы можете посмотреть здесь . Они рекомендуют использовать директиву Redirect непосредственно внутри файла вашего основного сервера. Вы можете сделать это следующим образом:

<VirtualHost *:80>
    ServerName www.example.com
    Redirect / https://www.example.com/www/
</VirtualHost>

<VirtualHost *:443>
    ServerName www.example.com
    Redirect / https://www.example.com/www/
    # ... SSL configuration goes here
</VirtualHost>

В случае, если выВы не можете получить доступ напрямую к серверу, вы можете сделать это в вашем файле .htaccess следующим образом:

RewriteEngine on
RewriteBase /

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

RewriteCond %{REQUEST_URI}/ www
RewriteRule ^(.*) %{HTTP_HOST}%/www/%{REQUEST_URI} [R=302,NC]
RewriteRule ^(.*) %{HTTP_HOST}%/www/%{REQUEST_URI} [R=302,NC]
...