2017-07-06 61 views
0

我正在使用Tuckey UrlRewriteFilter強制用戶轉到我的web的'www'和'https'版本。我的意思是接下來的3個網址必須重定向到https://www.myweb.comUrlRewriteFilter:www和https重定向

  • 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

問題不是過濾器,而是我的證書。我發給我的證書爲www.myweb.com,但沒有爲myweb.com,所以https://myweb.com請求沒有到達我的服務器,瀏覽器檢測到證書無效並且被阻止了進程。

我剛剛頒發了我的證書https://myweb.com並修改了我的Tuckey規則,如下所示。現在https://www.myweb.com是用戶可以使用的唯一URL。

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