UrlRewriteFilter:www和https重定向

时间:2017-07-06 15:41:29

标签: url-rewriting tuckey-urlrewrite-filter

我正在使用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>

请你帮我弄清楚第三种情况的规则?

谢谢。

1 个答案:

答案 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>