一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - IIS - URL Rewrite Module 2.1 URL重寫模塊規則寫法

URL Rewrite Module 2.1 URL重寫模塊規則寫法

2021-07-16 18:32IIS教程網 IIS

URL重寫模塊是IIS的擴展,可作為獨立IIS Server的下載下載,并且還預先安裝在Windows Azure網站(WAWS)上的任何網站上,供您使用,本教程將指導您完成如何為URL重寫模塊創建和測試一組重寫規則

先決條件

本演練需要滿足以下先決條件:

IIS安裝 URL Rewrite Module 2.1

短地址http://www.iis.net/extensions/URLRewrite

下載頁面

https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads

下載鏈接

https://download.microsoft.com/download/1/2/8/128E2E22-C1B9-44A4-BE2A-5859ED1D4592/rewrite_amd64_en-US.msi

https://download.microsoft.com/download/1/2/8/128E2E22-C1B9-44A4-BE2A-5859ED1D4592/rewrite_amd64_zh-CN.msi

啟用了ASP.NET角色服務的IIS 7或更高版本。
URL重寫模塊已安裝。有關更多信息,請參見使用URL重寫模塊。

設置測試網頁

為了演示URL重寫模塊如何工作,我們將使用一個簡單的測試ASP.NET頁面。該頁面讀取Web服務器變量,并在瀏覽器中輸出它們的值。

復制以下ASP.NET代碼,并將其放在名為article.aspx的文件的%SystemDrive%\ inetpub \ wwwroot \文件夾中:

  1. <%@ Page Language="C#" %>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>URL Rewrite Module Test</title>
  7. </head>
  8. <body>
  9. <h1>URL Rewrite Module Test Page</h1>
  10. <table>
  11. <tr>
  12. <th>Server Variable</th>
  13. <th>Value</th>
  14. </tr>
  15. <tr>
  16. <td>Original URL: </td>
  17. <td><%= Request.ServerVariables["HTTP_X_ORIGINAL_URL"] %></td>
  18. </tr>
  19. <tr>
  20. <td>Final URL: </td>
  21. <td><%= Request.ServerVariables["SCRIPT_NAME"] + "?" + Request.ServerVariables["QUERY_STRING"] %></td>
  22. </tr>
  23. </table>
  24. </body>
  25. </html>

復制此文件后,瀏覽http://localhost/article.aspx并檢查頁面是否在瀏覽器中正確呈現。

創建重寫規則

我們將創建一個簡單的重寫規則,該規則將使用以下格式重寫URL:

http://localhost/article/342/some-article-title

至:

http://localhost/article.aspx?id=342&title=some-article-title。

我們將使用IIS管理器中的URL重寫UI創建一個重寫規則。為此,請按照下列步驟操作:

1、轉到IIS管理器。

2、選擇默認網站。

3、在“功能視圖”中,單擊“ URL重寫”。

URL Rewrite Module 2.1 URL重寫模塊規則寫法

4、在右側的“操作”窗格中,單擊“添加規則…”。

URL Rewrite Module 2.1 URL重寫模塊規則寫法

5、在“添加規則”對話框中,選擇“空白規則”,然后單擊“確定”。

URL Rewrite Module 2.1 URL重寫模塊規則寫法

現在,您必須定義實際的重寫規則。在URL重寫模塊中,通過指定四項必需的信息來定義重寫規則:

  • 規則名稱。
  • 用于匹配URL字符串的模式。
  • 可選的一組條件。
  • 匹配模式并執行所有條件檢查是否成功時要執行的操作。

命名規則

在“名稱”文本框中,輸入將唯一標識該規則的名稱,例如:“重寫為article.aspx”。

URL Rewrite Module 2.1 URL重寫模塊規則寫法

定義模式

在模式文本框中,輸入以下字符串:

^article/([0-9]+)/([_0-9a-z-]+)

此字符串是一個正則表達式,它指定該模式將與滿足以下條件的任何URL字符串匹配:

  1. 以字符“ article /”的序列開頭。
  2. 在第一個“ /”之后包含一個或多個數字字符。
  3. 在第二個“ /”之后包含一個或多個字母數字或“ _”或“-”字符。

請注意,正則表達式的某些部分在括號內。這些括號創建捕獲組,以后可以通過使用反向引用在規則中對其進行引用。

定義動作

由于我們要創建的規則應該重寫URL,因此請選擇“操作”組框中列出的“重寫操作”類型。在“重寫URL:”文本框中,輸入以下字符串:

article.aspx?id={R:1}&title={R:2}

此字符串指定應將輸入URL重寫為的新值。請注意,對于查詢字符串參數的值,我們使用了{R:1}和{R:2},它們是對使用括號在規則模式中定義的捕獲組的反向引用。

保留所有其他設置的默認值。“編輯入站規則”屬性頁面應類似于以下頁面:

URL Rewrite Module 2.1 URL重寫模塊規則寫法

通過單擊右側的“應用”來保存規則。

查看配置文件中的重寫規則

重寫規則存儲在ApplicationHost.config文件或Web.config文件中。要檢查我們剛剛創建的規則的配置,請打開%SystemDrive%\ inetpub \ wwwroot中的Web.config文件。在此文件中,您應該看到<rewrite>包含此規則定義的部分:

  1. <rewrite>
  2. <rules>
  3. <rule name="Rewrite to article.aspx">
  4. <match url="^article/([0-9]+)/([_0-9a-z-]+)" />
  5. <action type="Rewrite" url="article.aspx?id={R:1}&amp;title={R:2}" />
  6. </rule>
  7. </rules>
  8. </rewrite>

上面的語法也適用于在Windows Azure網站(WAWS)的Web.config中配置URL重寫。

測試重寫規則

要測試該規則是否正確重寫了URL,請打開Web瀏覽器并請求以下URL:

http://localhost/article/234/some-title

您應該看到Web服務器上的重寫規則已將原始URL更改為Article.aspx,并且已將“ 234”和“ some-title”作為查詢字符串參數的值傳遞。

URL Rewrite Module 2.1 URL重寫模塊規則寫法

創建重定向規則

現在,我們將創建一個重定向規則,該規則將以以下格式重定向所有URL:

http://localhost/blog/some-other-title/543
格式如下:
http://localhost/article/543/some-other-title

重定向規則使一個以上的URL可以指向一個網頁。

為此,請在IIS管理器中打開URL重寫功能視圖UI。單擊“添加規則…”,然后再次選擇“空白規則”模板。

在“編輯規則”頁面中,輸入以下內容:

  • 名稱:從博客重定向(這是規則的唯一名稱。)
  • 模式:^ blog /([[_ 0-9a-z-] +)/([0-9] +)(此模式將匹配以“ blog”開頭的URL字符串,并將URL的第二和第三部分捕獲為反向引用。)
  • 行動:重定向(重定向動作將導致重定向響應發送回瀏覽器。)
  • 重定向URL:article / {R:2} / {R:1}(此替換字符串將用作重定向URL;請注意,它使用反向引用來保留和重新排列模式匹配期間捕獲的原始URL。)

輸入名稱,樣式和操作,如下所示:

URL Rewrite Module 2.1 URL重寫模塊規則寫法

輸入重定向URL,如下所示:

URL Rewrite Module 2.1 URL重寫模塊規則寫法

保留所有其他設置的默認值。通過單擊右側的“應用”來保存規則。

測試重定向規則

要測試該規則是否正確重定向了請求,請打開Web瀏覽器并請求以下URL:

http://localhost/blog/some-other-title/323

您應該看到,http://localhost/article/323/some-other-title由于執行重定向規則,瀏覽器被重定向到,然后根據您先前創建的重寫規則重寫了請求。

URL Rewrite Module 2.1 URL重寫模塊規則寫法

創建訪問阻止規則

我們將創建的第三條規則用于阻止對網站的所有請求(如果這些請求未設置主機頭)。當您要防止通過針對服務器的IP地址而不是使用主機名發出HTTP請求而進行的黑客嘗試時,這種類型的規則很有用。

我們將在不使用IIS管理器的情況下創建此規則。%SystemDrive%\inetpub\wwwroot\在本文開頭用于article.aspx測試文件的文件夾中打開Web.config文件。找到該<rewrite>部分。將以下規則插入<rules>集合中,使其成為該集合中的第一條規則:

  1. <rule name="Fail bad requests">
  2. <match url=".*"/>
  3. <conditions>
  4. <add input="{HTTP_HOST}" pattern="localhost" negate="true" />
  5. </conditions>
  6. <action type="AbortRequest" />
  7. </rule>

該<rewrite>部分應類似于以下代碼:

  1. <rewrite>
  2. <rules>
  3. <rule name="Fail bad requests">
  4. <match url=".*"/>
  5. <conditions>
  6. <add input="{HTTP_HOST}" pattern="localhost" negate="true" />
  7. </conditions>
  8. <action type="AbortRequest" />
  9. </rule>
  10. <rule name="Redirect from blog">
  11. <match url="^blog/([_0-9a-z-]+)/([0-9]+)" />
  12. <action type="Redirect" url="article/{R:2}/{R:1}" redirectType="Found" />
  13. </rule>
  14. <rule name="Rewrite to article.aspx">
  15. <match url="^article/([0-9]+)/([_0-9a-z-]+)" />
  16. <action type="Rewrite" url="article.aspx?id={R:1}&amp;title={R:2}" />
  17. </rule>
  18. </rules>
  19. </rewrite>

讓我們分析規則以了解它的作用。

<match url=".*"/>

上面的元素表示該規則將匹配任何URL字符串。

<add input="{HTTP_HOST}" pattern="localhost" negate="true" />

上面的元素為規則添加了一個條件,該條件通過讀取服務器變量HTTP_HOST來檢索主機頭值,并將其與模式“ localhost”進行匹配,然后取反結果。換句話說,該條件驗證主機頭與“ localhost”不匹配。

<action type="AbortRequest" />

上面的元素告訴URL重寫模塊結束HTTP請求。

測試訪問阻止規則

要測試此規則,請打開Web瀏覽器并向發出請求http://127.0.0.1/article/234/some-title。您應該看到的是沒有從服務器收到任何響應的瀏覽器。但是,如果您請求http://localhost/article/234/some-title,則Web服務器將成功響應。

失敗的顯示如下:

URL Rewrite Module 2.1 URL重寫模塊規則寫法

成功顯示如下:

URL Rewrite Module 2.1 URL重寫模塊規則寫法

概要

在本演練中,您學習了如何通過使用IIS管理器或手動編輯Web.config文件來配置URL重寫規則。在本演練中創建的規則演示了URL重寫模塊的一些重要功能,例如正則表達式支持以及使用HTTP標頭和服務器變量進行重寫決策的能力。

延伸 · 閱讀

精彩推薦
  • IISIIS7.5使用web.config設置偽靜態的二種方法

    IIS7.5使用web.config設置偽靜態的二種方法

    IIS7.5使用web.config設置偽靜態方法,有需要的朋友可以參考一下。...

    IIS之家4752020-08-28
  • IIS遠程分析win2003 IIS安全設置

    遠程分析win2003 IIS安全設置

    提起微軟公司 IIS web服務器的安全問題,很多人立刻就會聯想到那些為人們所稱頌的致命漏洞:UNICODE,CGI解析,.ida,idq,.Printer遠程溢出等.這些偉大的漏洞恐怕是我...

    服務器技術網3722020-09-12
  • IIS建站助手無法安裝iis-其他問題

    建站助手無法安裝iis-其他問題

    問:建站助手無法安裝iis服務,顯示Run-timeerror\429\: Activexcan\t 服務器IP:127.0.0.1127.0.0.1127.0.0.1用戶名:**********密碼:********** ,建站助手無法安裝iis 答:您好,...

    未知2042023-05-10
  • IIS云服務器怎么停止iis

    云服務器怎么停止iis

    云服務器 是一種虛擬化的服務器,它可以提供強大的計算和存儲資源,讓用戶能夠更靈活地部署和管理自己的應用程序和網站。在使用云服務器時,有時候...

    未知682023-09-06
  • IIS如何備份和恢復IIS6和IIS7的設置

    如何備份和恢復IIS6和IIS7的設置

    Windows的IIS有一個非常“坑爹”的備份還原功能,和大部分備份還原不同的是,這個服務默認不支持不同電腦之間的備份還原,如果用戶重裝Windows的話,即...

    服務器技術網10482022-03-03
  • IIS解決FastCGI 進程超過了配置的活動超時時限的問題

    解決FastCGI 進程超過了配置的活動超時時限的問題

    本篇文章是對解決FastCGI 進程超過了配置的活動超時時限的方法進行了詳細的分析介紹,需要的朋友參考下 ...

    jingxian6562020-05-08
  • IISIIS6架設網站過程常見問題解決方法總結

    IIS6架設網站過程常見問題解決方法總結

    很多朋友在用IIS6架網站的時候遇到不少問題,而這些問題有些在過去的IIS5里面就遇到過,有些是新出來的,俺忙活了一下午,做了很多次試驗,結合以前...

    IIS教程網7262021-08-24
  • IISIIS調用X-Forwarded-For Header (XFF)記錄訪客真實IP的兩種方法

    IIS調用X-Forwarded-For Header (XFF)記錄訪客真實IP的兩種方法

    通過IIS發布的網站放到F5設備后邊,通過透明監聽模式WAF設備過濾后,公網訪問者的真實IP被WAF設備IP替代,在網站日志看不到原來的真實IP了...

    hzfw200813292021-04-22
主站蜘蛛池模板: 国产激情在线 | 国产乱码在线精品可播放 | 欧美a在线 | 狠狠澡 | 国产精品香蕉在线观看不卡 | 户外露出野战hd | 四虎影视4hu最新地址在线884 | 纲手被强喷水羞羞漫画 | 农村脱精光一级 | 亚洲狠狠婷婷综合久久蜜桃 | 啊好痛嗯轻一点免费 | 成人先锋 | 国产亚洲精品高清在线 | 亚洲 欧美 中文字幕 在线 | 99久久这里只有精品 | 日本免费在线观看视频 | 高h文道具 | 国产日韩欧美视频 | 视频在线观看高清免费看 | 小小水蜜桃免费影院 | 日韩一区二区三 | 精品国产无限资源免费观看 | 小浪妇奶真大水多 | 国产大神91一区二区三区 | 好大好硬好深好爽gif图 | 91成人爽a毛片一区二区 | 欧美涩区 | 欧美一区二区三区精品影视 | 超91在线| 2020最新韩国理论三级0k | 欧美色fx性乌克兰 | 短篇小说肉 | aa视频免费| 探花国产 | 男人疯狂擦进女人下面 | 好姑娘在线视频观看免费 | 国产精品66福利在线观看 | 丝袜护士强制脚足取精 | 18亚洲chinese男男1069 | 99久久久久久久 | 亚洲码在线观看 |