拿掉網址前面的 www 時代
在許多情況下,網站擁有者可能會希望將網站的訪問從 www
版本重定向到 non-www
版本(或相反),以避免重複內容的問題,這對於搜尋引擎最佳化(SEO)來說非常重要。這篇文章將透過修改 .htaccess
文件來實現從 www
到 non-www
的重定向。一般來說在 2020 年開始,越來越多的網站已經變更為不再強制要求要前面的 www,從最早期開始「www」的使用習慣變化,其實反映了網際網路技術和使用者習慣的演進。早期,「www」(World Wide Web 的縮寫)作為網址的標準前綴,主要是為了指明該地址指向的是位於該域名下的網際網路服務,特別是與其他服務(如電子郵件服務的 SMTP、檔案傳輸的 FTP 等)作區分。那時,網站主要是通過「www」這個子域來提供,而其他服務則使用不同的子域。
- 技術發展:DNS(域名系統)和網頁伺服器的技術進步使得無論是否使用「www」,網站都能正常訪問。伺服器可以輕易配置為同時接受帶有「www」和不帶「www」的請求,並將它們指向同一個網站。
- 使用者習慣改變:隨著網際網路變得普及,人們越來越習慣於直接輸入域名訪問網站,而不是完整的包括「www」的URL。簡潔的網址更容易記住和輸入,特別是在行動裝置上。
- 品牌策略:很多品牌開始意識到,簡化網址有助於品牌識別和市場推廣。不使用「www」可以使網址更加簡潔和直觀,有助於提高品牌的可見度和記憶度。
- 搜尋引擎最佳化(SEO):從 SEO 的角度來看,選擇是否使用「www」應保持一致,以避免分裂網站的連結價值。無論是選擇使用還是不使用,重要的是確保網站的所有訪問都重定向到同一個版本,從而集中連結權重和提高搜尋排名。
使用 .htaccess
進行重定向的運作原理
.htaccess
文件是一種在 Apache 伺服器上配置網站設定的文件,它允許網站管理者進行許多重要設定,如 URL 重寫和重定向。透過在 .htaccess
文件中添加特定的規則,可以在伺服器層面上實施重定向,而不需要修改任何網頁內容或進行複雜的程式設計。
以下是一個簡單的步驟,說明如何設定 .htaccess
以實現從 www
到 non-www
的重定向:
- 打開
.htaccess
文件:首先,需要找到位於網站根目錄的.htaccess
文件。如果文件不存在,可以手動創建一個。 - 添加重定向規則:在
.htaccess
文件中添加以下代碼段:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# 將 www 重定向到 non-www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
這段代碼的運作原理如下:
-
- 首先,確認 mod_rewrite 模組已啟用(
<IfModule mod_rewrite.c>
)。 RewriteEngine On
啟用重寫引擎。RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
條件檢查訪問的主機名是否以www
開頭。RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
規則將所有匹配的請求重定向到相同的 URI,但去掉了www
,使用 301 永久重定向狀態碼,這有助於保留搜尋引擎排名。
- 首先,確認 mod_rewrite 模組已啟用(
- 保存並上傳
.htaccess
文件:修改後,保存.htaccess
文件並上傳到網站的根目錄。 - 測試重定向:在瀏覽器中輸入
www
版本的網站 URL,檢查是否自動重定向到non-www
版本。
通過這種方式設定重定向不僅可以幫助改善網站的 SEO 表現,也能為使用者提供更加一致的瀏覽體驗。此外,使用 .htaccess
文件進行重定向是一種伺服器端的解決方案,可以減少客戶端的請求次數,從而提高網站的載入速度。