проблема с RewriteRule и apache - PullRequest
0 голосов
/ 19 ноября 2009

У меня есть сертификат SSL, который зарегистрирован на моем домене www, но все мои URL указывают на мой домен без www. я попробовал это предложение:

RewriteRule ^[https://mydomain.org](.*)$ https://www.mydomain.org$1 [R=301,nc]

, но по неизвестной причине он также перенаправляет все звонки на http://mydomain.org. я действительно не могу придумать причину этого

Ответы [ 3 ]

1 голос
/ 19 ноября 2009

Попробуйте это правило:

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

Но сообщение о недействительном сертификате не исчезнет, ​​поскольку соединение SSL установлено до того, как HTTP принимает участие (поскольку HTTPS - это HTTP через SSL / TSL).

1 голос
/ 19 ноября 2009

Кто-то должен исправить меня, если я ошибаюсь, но я не думаю, что директива RewriteRule имеет доступ к протокольной части запрошенного URI. Попробуйте вместо этого:

RewriteCond %{HTTP_HOST} ^https://domain\.com$ [NC]
RewriteRule ^(.*)$ https://www.domain.com/$1 [R=301,L]
0 голосов
/ 19 ноября 2009

Как насчет определения порта сервера?

RewriteEngine On
RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R]

так буквально, если вы подключаетесь к https (поскольку вы используете порт 443), URL будет иметь WWW.

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