[小菜一碟] 用 URL Rewrite 解決 SEO 要求網址全小寫及有無斜線結尾的問題

為了讓搜尋引擎多認識我們的網站、提昇搜尋結果的排名,大都會做 SEO(Search Engine Optimization),其中有一條規則是要讓網址保持一致性,避免相同的網頁內容使用不同的網址,導致網頁的瀏覽量被分散,因而讓搜尋引擎認為我們的網頁內容沒什麼人要瀏覽,使得該網頁的權重下降而影響排名,如果是全新的網站,我們大可配合 SEO 來調整設計,可是如果是已經被蹂躪過的已存在網站,又剛好是 Host 在 IIS 上,該怎麼辦?

網址大小寫

在 IIS 中,網址是不分大小寫的,但是搜尋引擎看網址是有分大小寫的,我們看下圖,這是我從 GA 匯出來的資料,明明這兩個網址的內容是一樣的,但是瀏覽量卻硬生生地被拆開計算。

網址有無 / 結尾

其中,相同的網址,有 / 結尾及沒有 / 結尾也被視為兩個不同的網址。

URL Rewrite

還好,很慶幸地,URL Rewrite 幫我們設想到了,透過增加 URL Rewrite 的規則就可以輕鬆解決網址大小寫及 / 結尾的問題,URL Rewrite 可以到這個網頁下載安裝,也可以透過 Microsoft Web Platform Installer 下載安裝。

安裝好之後,我們就可以在站台的「功能檢視」找到 URL Rewrite,點擊兩下就可以打開了,打開之後我們點擊右上角 Add Rule(s)...

Enforce lowercase URLs

點擊 Add Rule(s)... 之後可以發現,已經有一個區塊是跟 SEO 相關的。

接著我們選擇 Enforce lowercase URLs,這個規則會幫我們強制將 URL 轉成小寫,按確定之後,在 URL Rewrite 的規則清單上就會多一個 LowerCaseRule1,這個規則名稱是預設的,我們可以改成我們自己想要的。

看一下新增 Enforce lowercase URLs 規則後的效果

Append or remove the trailing slash symbol

一樣點擊 Add Rule(s)... 將另一條規則 Append or remove the trailing slash symbol 加到規則清單,這時會有兩個選項讓我們選,一個是強制將 / 加在結尾處、一個是強制將 / 從結尾處移除,我這邊選擇的是後者。

按下確定之後,規則清單就多了一條 RemoveTrailingSlashRule1,規則名稱如果不喜歡,一樣可以改成我們想要的。

為了區別,我先關閉網址強制轉小寫的規則,我們來看一下效果。

參考資料

相關資源

C# 指南
ASP.NET 教學
ASP.NET MVC 指引
Azure SQL Database 教學
SQL Server 教學
Xamarin.Forms 教學