我一直在網上狩獵爲這個解決方案,但我只能得到1和2的工作。如何獲得一個HTTP URL重寫HTTP和非WWW到WWW工作
http://www.example.com
到https://www.example.com
www.example.com
到https://www.example.com
http://example.com
到https://www.example.com
https://example.com
到https://www.example.com
https://example.com
到https://www.example.com
example.com/page.aspx
到https://www.example.com/page.aspx
要求:
- 所有URL是HTTPS
- 沒有WWW在其中展現WWW
- 所有其他重定向工作,查詢字符串,而params結轉等 所有URL
所以主要問題是,如果沒有指定協議(http
或https
),那麼如果我輸入example.com/blah
那麼它g ets轉換爲www.example.com/blah
,但在前面放置協議(http
或https
)並斷開鏈接。
由於我目前沒有將非WWW URL移動到WWW的規則,因此我不確定是在做什麼,如果必須這樣做,我如何才能使它適用於HTTP到HTTPS 。
我試圖把規則HTTP與非WWW到WWW的規則去HTTPS在一起,但它沒有工作(第一個例子,你會看到 - 底部的例子是我使用什麼此時此刻)。
我一直在使用
{HTTP_HOST}
而不是在規則的重定向部分寫入了自己的網站網址的嘗試。我試圖分裂成規則2,一個用於HTTP到HTTPS,一個用於無WWW到WWW。
但似乎沒有任何工作。
目前,我只是用我的hosts文件和實踐,改變規則在web.config文件在Win 2012箱的部位。
我還有其他規則,例如www.example.com/plugins
轉到.aspx
下的頁面(重寫),但如果URL中沒有www
,則這些規則不起作用。
因此,似乎不帶www的網址WWW的重定向的問題,我不知道它與HTTP結合起來的最佳途徑HTTPS規則。
我嘗試的覆蓋HTTPS/WWW和沒有工作的4/5分開(非WWW到WWW),這是該規則的兩個規則組合。
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{HTTPS}" pattern="^OFF$" />
<add input="{HTTP_HOST}" pattern="^[^www]" />
</conditions>
<action type="Redirect" url="https://www.example.com/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
的logicalGrouping="MatchAny"
至"MatchAll"
實際切換似乎並不令的方式不同。
只要有人不輸入URL爲http://example.com/plugins
那麼它工作正常,並被重定向到https://www.example.com/plugins
。
不是我知道很多人現在輸入鏈接時實際輸入了協議(//
也適用),但它顯然是舊的搜索引擎和我需要處理重複內容的網站嵌入式鏈接。
任何人都可以想到爲什麼這不起作用的原因或我應該嘗試嗎?
我有設置爲端口80/443的WWW和沒有綁定。
我從來沒有找到類似這樣的問題的答案,人們談論IIS設置,如綁定和端口,但我認爲他們應該因爲web.config綁定到URL重定向應用程序和綁定顯然是您的地址。
我只是覺得很奇怪,我之前提出的示例規則與僅向HTTPS提到HTTP的這一個一樣好。
這就是我目前使用的。也許IIS用www
做些什麼?
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>
我甚至改變了綁定的順序,使非WWW綁定的WWW綁定認爲之前就可能有一些用它做。
我控制我的DNS和我的A記錄設置像
DNSEntry - WWW
Type - A
Destination - MY IP
所以我有點糊塗到什麼是真正迫使非www網址去WWW網址。由於我目前在web.config中使用的命令只提到了HTTPS。
我在想也許在IIS中有一些東西(我不是IIS 8的專家)已經設置了一些值或者其中一個值的設置應該是沒有WWW的域。
任何幫助將不勝感激。我懷疑有很多關於指向我的網站的網址,但無論如何都沒有WWW,但是知道搜索引擎優化,我可以強制他們都到一個地方,這樣我就不會被重複內容捕獲。