Cấp bậc tác giả:

DOTNET

[Phần 2]IIS URL Rewrite – Chuyển nhiều tên miền thành một

Được viết bởi webmaster ngày 26/08/2013 lúc 02:42 PM
Đây là phần thứ 2 của IIS URL Rewrite – rewriting non-www thành www. Có bạn hỏi về chuyển hướng nhiều tên miền thành một quy tắc duy nhất. Đó là một câu hỏi hay và giá trị .
  • 0
  • 3799

[Phần 2]IIS URL Rewrite – Chuyển nhiều tên miền thành một


Đây là phần thứ 2 của IIS URL Rewrite – rewriting non-www thành www. Có bạn hỏi về chuyển hướng nhiều tên miền thành một quy tắc duy nhất. Đó là một câu hỏi hay và giá trị .

Đây là câu hỏi:

  Nếu chúng ta có nhiều tên miền với  nhiều phần mở rộng ví dụ: 
  mydomain.com đến www.mydomain.com (đã thực hiện) 
  mydomain.net đến www.mydomain.com 
  www.mydomain.net đến www.mydomain.com 
  ...
  và có lẽ cũng 
  www.mydomain2.net đến www.mydomain.com 
  ... 

Biểu thức thông thường để xử lý .com / .net / .org trong một điều kiện duy nhất. Bạn có thể làm điều này bằng cách sử dụng "Condition input" check cho {HTTP_HOST} với một "Pattern":

^domain.(com|net|org)$

Lưu ý rằng ^ đánh dấu sự bắt đầu của pattern và $ điểm cuối cùng khi sử dụng biểu thức thông thường.
Ngoài ra, để xử lý mydomain2.net, hãy chắc chắn đến thiết lập "Logical Grouping" đến Match Any. Điều này cho phép bất kỳ các quy tắc để gây ra các quy định phù hợp với điều kiện và chuyển hướng. Sau khi thiết lập Match Any, bạn có thể thêm nhiều lĩnh vực muốn với quy tắc duy nhất với nhiều điều kiện.
Hãy nhìn vào mydomain2.com và .net. Dưới đây là Pattern bắt tất cả các trường hợp:

^(www.)?mydomain2.(com|net)$

Nó sẽ bắt www và non-www và .com và .net.
Ảnh chụp màn hình sau đây cho thấy điều kiện sẽ bắt như sau:

URL05.png

Lưu ý rằng hành động sẽ chuyển hướng tất cả trong số chúng đến cùng một nơi (www.domain.com). Chỉ cần chắc chắn rằng không có điều kiện phù hợp với www.domain.com hoặc bạn sẽ tạo ra một vòng lặp.
Cấu hình sẽ giống như sau:

<rewrite>
    <globalRules>
        <rule name="Redirects to www.domain.com" patternSyntax="ECMAScript" stopProcessing="true">
            <match url=".*" />
            <conditions logicalGrouping="MatchAny">
                <add input="{HTTP_HOST}" pattern="^domain.*(com|net)$" />
                <add input="{HTTP_HOST}" pattern="^(www.)?mydomain2.(com|net)$" />
                <add input="{HTTP_HOST}" pattern="^www.domain.net$" />
            </conditions>
            <action type="Redirect" url="http://www.domain.com/{R:0}" />
        </rule>
    </globalRules>
</rewrite>

Bạn có thể làm điều này bằng cách sử dụng wildcards. Nó sẽ có nhiều conditions hơn. Cũng có thể làm điều này với rewrite maps, một tính năng của URL Rewrite.

Nguồn bài viết: DOTNET.VN

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML