作者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
1F:推 cychi:加上 RewriteCond $1 !^(administrator) 09/05 15:59
2F:→ LaPass:感谢楼上,有重大突破了 09/05 17:09
3F:→ LaPass:不过为了避免administratoraaa 这种开头一样的字被误判,我 09/05 17:10
4F:→ LaPass:把他改成RewriteCond $1 !^(adm|adm/.*)$ 这样 09/05 17:12
5F:→ LaPass:PS. adm =那一长串 09/05 17:12
6F:→ averywu:正规表示式 09/06 12:44
7F:→ danny8376:先搞懂正规表达式 之後就可以写Rewrite规则了 09/07 16:49