从每个组合重写为WWW和https

时间:2011-07-22 12:13:44

标签: windows https isapi-rewrite

我使用来自helicon的isapi reirte。

我有非www到www重写的代码:

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

适用于非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

这意味着我解决了我的一半问题!但为什么网址的其余部分不存在?!

1 个答案:

答案 0 :(得分:-1)

我的回答考虑了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]