我想通過IIS重寫引擎將所有www域全裸。有許多域指向相同的應用程序。在IIS 7.5中重定向URL
這裏是我的規則:
^(WWW)(。*)$
動作類型:重定向 重定向URL:{R:2} 重定向類型:永久
當我測試www.xxx.com
ř圖案:0 => www.stac koverflow.com R:1 => www。 R:2 => www.stackoverflow.com
這很好。 有什麼不對?還應該包含「http://」?
我想通過IIS重寫引擎將所有www域全裸。有許多域指向相同的應用程序。在IIS 7.5中重定向URL
這裏是我的規則:
^(WWW)(。*)$
動作類型:重定向 重定向URL:{R:2} 重定向類型:永久
當我測試www.xxx.com
ř圖案:0 => www.stac koverflow.com R:1 => www。 R:2 => www.stackoverflow.com
這很好。 有什麼不對?還應該包含「http://」?
像^(www \。)(。+)$這樣的東西應該在匹配http_host時工作,但是指定域可能會更好。從我所知道的IIS(不多)和它在網上說的東西,如:
<rewrite>
<rules>
<rule name="Redirect www.xxx.com to xxx.com" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www\.domain\.com$" />
</conditions>
<action type="Redirect" url="http://domain.com/{R:0}" />
</rule>
</rules>
</rewrite>
哦,你說的任何域。如果你想確保它以.com結尾應該是這樣的
^(WWW \)(+)(\。com)$對HTTP_HOST
..哦,如果你這樣做您需要備份的參考,所以嘗試這樣的事:
<rewrite>
<rules>
<rule name="Redirect www.domain.com to domain.com" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www\.(.+)$" />
</conditions>
<action type="Redirect" url="http://{C:1}/{R:0}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
在C:1是一個逆向引用
問題是我們的域名並不具體。我們根據url生成來自數據庫的內容。所以我想將所有www域重定向到裸體。有大約100個域名指向該網站。這可以更多。所以我不能指定域。有什麼建議麼? – gandil
謝謝craniumonempty。那麼.com .org .net等呢? – gandil
@daemon最後包含主機名的其餘部分,並將其永久化。如果你想讓它更具動態性,請閱讀正則表達式。 – craniumonempty
我添加了一個回參考條件。那是你在找什麼?基本上在第一個(或者尊敬它或者計數它)的地方取出parens並且做這樣的事情:^ www \。(。+)$(用於HTTP_HOST)並且重定向到http:// {C:1}// {R:0} – craniumonempty
如果您只是執行將使用「www」匹配整個內容的^ www \。(。+)$。如果你想具體你可以做到這一點:^ www \。(。+)\。(com | net | org)$ for「com」or「net」or「org」 – craniumonempty
哦,還要加redirectType =「Permanent」動作標籤使其永久..哦,它應該是^ www \。(。+ \。(com | net | org))$或者你將不得不爲第二部分調用2 back引用 – craniumonempty