2016-12-30 68 views
1

我尋找的是消除了HTML文件 的擴展規則(或一組規則),但在同一時間,以便能夠重寫瀏覽器的URL如下面的例子:如何使用web.config在IIS UrlRewriteModule中重寫網頁的網址?

category1_pageid2.html到categories_page (更多搜索引擎友好)

我有一個共享宿主環境與IIS 8.5 IIS_UrlRewriteModule 7.1.1952.0

非常感謝您的幫助

+0

是否需要支持一組單詞才能從單數轉換爲複數(例如* category *轉換爲* categories *)或者只是一個實例? –

+0

Βy你的意思是多個頁面的單詞數組?如果是的話,你是否有一個web.config的例子來說明如何實現它? – kost

回答

1

在IIS中,我創建了一個新的規則:

enter image description here

然後在下一個對話框中,我添加了一個模式categories_page{QUERY_STRING}匹配模式c=(\d+)&p=(\d+)條件(儘管你可能不需要查詢字符串 - 按您的需求定製)。而對於動作我加了重寫URLcategory{C:1}_pageid{C:2}.html。如果您不需要查詢字符串,那麼您可以取消選中該複選框附加查詢字符串

enter image description here enter image description here

望着的web.config文件的網站,我看到下面的XML:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <rewrite> 
      <rules> 
       <rule name="category-page"> 
        <match url="categories_page" /> 
        <action type="Rewrite" url="category{C:1}_pageid{C:2}.html" /> 
        <conditions> 
         <add input="{QUERY_STRING}" pattern="c=(\d+)&amp;p=(\d+)" /> 
        </conditions> 
       </rule> 
      </rules> 
     </rewrite> 
    </system.webServer> 
</configuration> 

當在瀏覽器中嘗試這個,我看到了category1_pageid2.html當我登錄到localhost/categories_page?c=1&p=2時:

enter image description here

其他選項包括一個rewrite map - 請參閱this answer的簡短說明。

+0

許多非常感謝您的詳細解答山姆。最後一個問題......這可能是共享主機環境嗎?我無法在IIS 8.5中創建入站規則,因爲我沒有權限訪問IIS管理。 web.config可以在沒有創建入站規則的情況下工作嗎? – kost

+0

我實際上並沒有在共享主機環境中嘗試過它,所以我不確定。我知道UI對話框列出_inbound rule_,但* web.config *文件中的xml不包含該關鍵字,所以我認爲它應該沒關係......¯\\ _(ツ)_ /¯ –