mod_rewrite

回覆文章
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

mod_rewrite

文章 yehlu »

http://www.gocar.idv.tw/phpbb3/viewtopic.php?f=24&t=17

1.檢查apache是否有安裝mod
代碼:

代碼: 選擇全部

httpd.conf:
LoadModule rewrite_module modules/mod_rewrite.so
2.設定目錄權限
為了安全性的問題,其實不建議直接設定做下列設定
代碼:

代碼: 選擇全部

< Directory />
AllowOverride None
< /Directory>
但因為設了AllowOverride None 將不接受.htaccess 設定
所以在要使用相關功能的地方再另外設定
代碼:

代碼: 選擇全部

< Directory /var/www/ooxx>
AllowOverride All
< /Directory>
3.在要轉換的目錄中新增檔案 .htaccess
代碼:

代碼: 選擇全部

RewriteEngine On //開啟Rewrite功能
RewriteRule ^([0-9A-Za-z]+).html$ index.php?name=$1 //Rewrite規則
RewriteRule ^([0-9a-z]+)/([0-9]*)$ index.php?name=$1 & id=$2 //Rewrite規則
基本上就是用RegularExpresson的功能去取代網址
至於怎麼用RegularExpresson
請參考 http://www.gocar.idv.tw/phpbb3/viewtopic.php?f=8&t=16

範例解說:
代碼:

代碼: 選擇全部

^([0-9A-Za-z]+).html$
主要就是指0~9 及大小寫a~z最後再加上.html

RewriteRule ^([0-9A-Za-z]+).html$ index.php?name=$1
原來網址:http://www.gocar.idv.tw/ooxx/index.php?name=gogo123
轉換成:http://www.gocar.idv.tw/ooxx/gogo123.html

RewriteRule ^([0-9a-z]+)/([0-9]*)$ index.php?name=$1&id=$2
原來網址:http://www.gocar.idv.tw/ooxx/index.php? ... o123&id=11
轉換成:http://www.gocar.idv.tw/ooxx/gogo123/11
回覆文章

回到「apache」