2012-04-22 127 views
0

我有一個電子商務網站,開始在PHP和已被遷移到一個asp.net。網址重寫爲asp.net電子商務網站與LONG網址

我發現,除非我對我的設計師非常具體,否則我想要發生的變化不會。

有一兩件事,我發瘋的是很長的URL。例如說,從下面的層級類別頁面: 婦產護士服裝 - 孕婦褲&牛仔褲 - 孕婦牛仔褲 返回的URL www.exampledomain.com/store/category/maternity%20and%20nursing%20clothing/maternity%20pants%20 &%20jeans/maternity%20jeans.aspx!來吧!

設計師正致力於用連字符替換空格......雖然他在那裏,但是有什麼方法可以讓他讓這些網址更友好?有沒有辦法跳過一切,但最終的產品類別?那麼,www.exampledomain.com/maternity-jeans.aspx?

爲了方便起見,我應該刪除層次結構並直接從主頁獲得最終的類別?我不想這樣做,因爲有很多子類別,沒有比這個例子更深的。

任何意見將熱烈收到。正如我所說的,如果我不對我的設計師說,這就是我想要的,這就是我認爲你這樣做的原因,我得到了擦掉 - 由於幾個原因,我暫時與他們停滯不前。

+0

哦,我應該避免在URL的「&」?我的重寫可以設置爲忽略「&」或「和」嗎?我以前的PHP網站可以。 – 2012-04-22 10:24:04

回答

0

我會親自去同一個URL結構,涉及的最少字符量,例如:

http://www.example.com/maternity-jeans

這不僅是乾淨的,它是搜索引擎優化更好,因爲有像較少沒用的話「商店」和「類別」。它的安全性也稍微好一些,因爲它並沒有讓你明白你的網站是建立在ASP.NET上的。

爲了達到這個URL結構,我通常會選擇使用Helicon ISAPI rewrite,如果你在一個專用的服務器上,你可能能夠免費獲得免費版本,否則將收取99美元的費用。

另一種方法是使用IIS URL重寫,你需要運行IIS 7及以上使用這些。

我假設你有一個單一的分類頁面,所有類別的加載?對於下面的例子,我將其稱爲「category.aspx」。

這條規則之下將抓住類別的名稱,並通過把它作爲你的「category.aspx」頁面的查詢字符串參數,然後您可以使用查詢數據庫和顯示頁面。

赫利ISAPI:

RewriteRule ^/(.*)$   /category.aspx?name=$1 [L] 

IIS URL重寫:

<rule name="Category" stopProcessing="true"> 
    <match url="(.*)" /> 
    <action type="Rewrite" url="category.aspx?name={R:1}" /> 
</rule> 

雖然上面的URL結構將是我的偏好,你可能要考慮到其他頁面的網址,您的現場。上述規則將採取任何URL並假設它是一個類別,顯然不是所有的URL都是類別。

在這種情況下,你有兩個選擇,你既可以包含一個獨特的文字或字符識別,這是一個類別,如:

http://www.example.com/c/maternity-jeans

這將改變你的重寫:

赫利ISAPI:

RewriteRule ^/c/(.*)$   /category.aspx?name=$1 [L] 

IIS URL重寫:

<rule name="Category" stopProcessing="true"> 
    <match url="c/(.*)" /> 
    <action type="Rewrite" url="category.aspx?name={R:1}" /> 
</rule> 

或者,您可以通過您網站上的腳本運行每個頁面,根據該URL確定要查看的頁面類型,然後渲染相應的內容。

它很大程度上取決於您的網站目前的工作方式以及是否準備進行更改。