我正在使用Tuckey UrlRewriteFilter强制用户转到我的网站的'www'和'https'版本。我的意思是接下来的3个网址必须重定向到https://www.myweb.com
http://www.myweb.com
http://myweb.com
https://myweb.com
问题来自最后一个,我找不到将'www'放入'https'的解决方案。我有下一个规则,使2个第一个案例工作没有问题:
<rule>
<name>Domain Name Check</name>
<condition name="host" operator="equal">myweb.com$</condition>
<condition type="scheme" operator="equal">^http$</condition>
<from>^(.*)$</from>
<to type="permanent-redirect">https://www.myweb.com$1</to>
</rule>
这当然不适用于第三种情况。如果我对第三种情况尝试类似的规则,如下所示,它也不起作用(我不知道为什么):
<rule>
<name>Domain Name Check</name>
<condition name="host" operator="equal">myweb.com$</condition>
<condition type="scheme" operator="equal">^https$</condition>
<from>^(.*)$</from>
<to type="permanent-redirect">https://www.myweb.com$1</to>
</rule>
请你帮我弄清楚第三种情况的规则?
谢谢。
答案 0 :(得分:1)
问题不是过滤器而是我的证书。我为www.myweb.com
颁发了证书,但myweb.com
没有,因此https://myweb.com
请求未到达我的服务器,浏览器检测到证书无效并阻止了该过程。
我刚刚发布了https://myweb.com
的证书并修改了我的Tuckey规则,如下所示。现在https://www.myweb.com
是用户可以使用的唯一网址。
<rule>
<name>Domain Name Check</name>
<condition type="request-url" operator="equal">(^http://myweb.com|^http://www.myweb.com|^https://myweb.com)</condition>
<from>^(.*)$</from>
<to type="redirect">https://www.myweb.com$1</to>
</rule>