переписать в WWW и https из каждой комбинации - PullRequest
0 голосов
/ 22 июля 2011

я использую рециркуляцию isapi из helicon.

У меня есть этот код для переписывания без www на www:

RewriteCond %{HTTPS} (on)?
RewriteCond %{HTTP:Host} ^(?!www\.)(.+)$ [NC]
RewriteCond %{REQUEST_URI} (.+)
RewriteRule .? http(?%1s)://www.%2%3 [R=301]

отлично работает для не-www в www-часть ... чем мне нужно это www, если он находится на http для перенаправления на https

RewriteCond  %HTTPS (?!on).*
RewriteCond Host: (.*)
RewriteRule (.*) https\://$1$2 [I,RP, L]

что мне нужно изменить, чтобы оно работало?

я получаю https://folder/index.asp весь домен пропал

Я пробовал то же самое, но это не работает, вот оно:

RewriteCond %{HTTP:Host} ^(?!www\.)?(.*)$ [NC]
RewriteCond %{REQUEST_URI} (.+)
RewriteRule .? https://(?%1www.)%2 [R=301]

если я попробую domain.com, я получу https://www. и если я попробовал www.domain.com, я получил бы https://www.

что это значит, я решил половину своей проблемы! но почему остальной части URL там нет?!

1 Ответ

0 голосов
/ 22 июля 2011

В моем ответе учитывается ответ для ISAPI_Rewirte версии 3. Вы получаете https://folder/index.asp, поскольку значение вашего хоста находится внутри% 1, а не $ 1.

Я бы предложил:

RewriteCond %{HTTPS} !on
RewriteCond Host: www\.(.*)
RewriteCond {REQUEST_URI} (.*)
RewriteRule .* https\://www.%1%2 [NC,R=301,L]
...