-1

我使用 helicon 的 isapi rewirte。

我有这个代码用于非 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

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

4

1 回答 1

-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]
于 2011-07-22T14:09:38.627 回答