好處有:
- 讓URL 短一點,對使用者而言,靜態網址的接受度較高。
- Search Engine Robots/Spiders/Crawlers 比較吃的下去
- 靜態網址的 SEO/SERP 效果好(尚未證實)
- 減少你的 Log File / header流量的負擔,積少成多
此種作法要注意:
- 要注意 Session ID 的控制或 Cache-Control 等議題
- 一些使用者專屬個人資料的頁面,rewrite 時要注意。
- .htaccess 的設定
要實作此種網頁模式,可使用Apache的mod_rewrite模組來達成。
rewrite的使用方式:
- 使用在Apache主配置文件httpd.conf中
- 使用在httpd.conf裡定義的虛擬主機配置中
- 使用在基本目錄的跨越配置文件.htaccess中
假如你對你的的網站內容所在的服務器沒有管理員權限,或者你的網站放在ISP的服務器上托管等等條件下,你無法改寫主配置文件,然而你可以對你的WEB站點內容所在的目錄有寫入權限,則你可以設置自己的.htaccess文件達到同樣的目的。
但你需要確定Apache主配置文件httpd.conf中對你的網站所在的目錄定義了下面的內容,否則你的.htaccess不會工作:
Options Indexes FollowSymLinks
AllowOverride all
設定完記得重新啟動Apache伺服器才會生效。
一般我們對於網站服務器的權限都不會太自由,所以在這裡我以使用配置文件.htaccess的方式來實作。
- 假設 Apache 的 Rewrite 已經打開(mod_rewrite)
- 在要實作Rewrite的網站目錄下建立名為 .htaccess 的配置檔
- .htaccess 配置檔的內容如下:
RewriteEngine On
RewriteRule ^mypage/([0-9]+)/([a-z]+)\.html$ mypage.php?id=$1&login=$2
如此就可以/mypage/3688/name.html 這樣的網址來執行 /mypage.php?id=3688&login=name 了。