mod_rewrite
發表於 : 2012-03-04 10:34:37
http://www.gocar.idv.tw/phpbb3/viewtopic.php?f=24&t=17
1.檢查apache是否有安裝mod
代碼:
2.設定目錄權限
為了安全性的問題,其實不建議直接設定做下列設定
代碼:
但因為設了AllowOverride None 將不接受.htaccess 設定
所以在要使用相關功能的地方再另外設定
代碼:
3.在要轉換的目錄中新增檔案 .htaccess
代碼:
基本上就是用RegularExpresson的功能去取代網址
至於怎麼用RegularExpresson
請參考 http://www.gocar.idv.tw/phpbb3/viewtopic.php?f=8&t=16
範例解說:
代碼:
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
1.檢查apache是否有安裝mod
代碼:
代碼: 選擇全部
httpd.conf:
LoadModule rewrite_module modules/mod_rewrite.so
為了安全性的問題,其實不建議直接設定做下列設定
代碼:
代碼: 選擇全部
< Directory />
AllowOverride None
< /Directory>
所以在要使用相關功能的地方再另外設定
代碼:
代碼: 選擇全部
< Directory /var/www/ooxx>
AllowOverride All
< /Directory>
代碼:
代碼: 選擇全部
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
請參考 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