作者LaPass (LaPass)
看板Web_Design
標題[問題] RewriteRule
時間Thu Sep 5 14:48:58 2013
目前網站的根目錄是長這樣
/
function 資料夾
administrator 資料夾
index.php
view.php
想做到的功能是這樣:
連入網址 轉換後的網址
http://127.0.0.1/administrator =>
http://127.0.0.1/administrator
如果是我允許使用者連進去的資料夾,就不管他,直接連進去
PS可能有多個
http://127.0.0.1/abc =>
http://127.0.0.1/view.php?id=abc
其他網址
其中abc所代表的涵蓋範圍為[a-zA-Z0-9]+
可以把它當成縮網址或是imgur的那種字串
http://127.0.0.1/abc/v =>
http://127.0.0.1/view.php?id=abc$mod=v
其他網址的另外一種形式/v是代表瀏覽模式的不同
http://127.0.0.1/function =>
http://127.0.0.1/view.php?id=function
雖然有function這個資料夾,但是我不打算讓別人連進去,所以重新導到view.php
PS可能有多個
我從以前就對RewriteRule很不在行
翻了蠻久的資料,還是沒辦法把想要的功能兜出來
請各位給一點方向.... m(_ _)m
目前試到最接近的是這樣
RewriteEngine On
RewriteBase /
RewriteRule ^([0-9a-zA-Z]+)$ view.php?id=$1
這可以處理
http://127.0.0.1/abc 之類的網址
不過連結到
http://127.0.0.1/administrator 的時候
網址會變成
http://127.0.0.1/administrator/?id=administrator
(網址列就顯示這樣,觸發的頁面則是administrator資料夾下的index.php)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.38.66.94
推 cychi:加上 RewriteCond $1 !^(administrator) 09/05 15:59
→ LaPass:感謝樓上,有重大突破了 09/05 17:09
→ LaPass:不過為了避免administratoraaa 這種開頭一樣的字被誤判,我 09/05 17:10
→ LaPass:把他改成RewriteCond $1 !^(adm|adm/.*)$ 這樣 09/05 17:12
→ LaPass:PS. adm =那一長串 09/05 17:12
→ averywu:正規表示式 09/06 12:44
→ danny8376:先搞懂正規表達式 之後就可以寫Rewrite規則了 09/07 16:49