2011-10-18 105 views
0

我的SEO同事已經在幾個URL請求解僱了涉及移動如何將一個網址給ASP.NET MVC網站

www.mydomain.co.uk/news
www.mydomain.co.uk /新聞/ {ID}/{TITLE}

www.mydomain.co.uk/uk-news
www.mydomain.co.uk/uk-news/{id}/{title }

執行此操作的最佳方法是什麼?

我只是想在Global.asax文件中更改路線的

FROM:

routes.MapRoute(
     "News", // Route name 
     "News", // URL with parameters 
     new { controller = "News", action = "Index" } // Parameter defaults 
    ); 

TO:

routes.MapRoute(
    "News", // Route name 
    "uk-news", // URL with parameters 
    new { controller = "News", action = "Index" } // Parameter defaults 
); 

,並設立一個301重定向的基本WWW .mydomain.co.uk/news

有沒有更好的方法來做到這一點?

回答

4

我不這麼認爲。在正確的軌道上,更改路線上的URL並執行301永久性重定向是您的選擇。對於301嘗試使用URL重寫模塊。

重寫模塊

<!-- Web.config file in subdirectory to be redirected --> 
<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
    <rewrite> 
     <rules> 
     <rule name="RedirectRule" stopProcessing="true"> 
      <match url="(.*)" ignoreCase="true" /> 
      <action type="Redirect" url="http://www.newdomain.com/{R:1}" redirectType="Permanent" /> 
      <conditions> 
       <add input="{HTTP_HOST}" pattern="www\.old-domain\.com" /> 
      </conditions> 
     </rule> 
     </rules> 
    </rewrite> 
    </system.webServer> 
</configuration> 

的ISAPI_Rewrite

RewriteCond Host: ^mydomain\.co.uk 
RewriteRule /news http://www.mydomain.co.uk/uk-news [I,O,RP,L] 

I(忽略大小寫)

指示字符,而不管的情況相匹配。該標誌影響RewriteHeader指令和所有相應的RewriteCond指令。處理之前

O(正常化)

規一化的字符串。規範化包括刪除URL編碼,非法字符等。另外,URI的IIS規範化完全刪除了查詢字符串。因此,如果需要查詢字符串,則不應使用規範化。此標誌對URL和URL編碼標頭非常有用。

RP(永久重定向)

幾乎一樣的[R]標誌而是發出301(永久移動)的HTTP狀態代碼,而不是302(移動臨時的)。

L(最後一條規則)

停止重寫此過程中,不應用任何重寫規則。

+0

感謝您的回覆,我只是想知道重寫模塊是否可以在IIS 6上工作? – SimonGates

+0

Aww nope。我爲我們的iis 6實例使用isapi_rewrite:/你可以檢查它,但它不是免費的,免費的是http://iirf.codeplex.com/試試看。 –

+0

我有一個ISAPI_Rewrite配置文件,重寫條件是什麼?對不起,我不熟悉ISAPI_rewrite – SimonGates