1.ThinkPHP支持的URL模式有四种:普通模式、PATHINFO、REWRITE和兼容模式,可以设置URL_MODEL参数改变URL模式。
URL模式 |
URL_MODEL设置 |
普通模式 |
0 |
PATHINFO模式 |
1 |
REWRITE模式 |
2 |
兼容模式 |
3 |
系统默认的是PATHINFO模式
2.模式
<ahref="{:U('Post/index',array('name'=>'content'))}">
普通模式对应浏览器的url是/index.php?m=&c=Post&a=index&name=content
PATHINFO模式对应浏览器的url是/index.php/Post/index/name/content.html
REWRITE模式对应浏览器的url是/Post/index/name/content.html
兼容模式对应浏览器的url是/index.php?s=/Post/index/name/content.html
3.遇到问题
后台地址: admin.php <ahref="admin.php">admin.php</a>
普通模式:http://www.thinkadmin.com/admin.php?m=Admin&c=Login&a=index
PATHINFO模式:http://www.thinkadmin.com/admin.php/Login/index.html
REWRITE模式:http://www.thinkadmin.com/Login/index.html
兼容模式:http://www.thinkadmin.com/admin.php?s=/Login/index.html
可以看出来,如果要用到后台,REWRITE模式是不可以的(或者说是很麻烦的可能更准确)。自己的一点拙见,如有其他方法请留言,谢谢!
另外:默认的替换规则有:
1. __ROOT__: 会替换成当前网站的地址(不含域名)
2. __APP__: 会替换成当前应用的URL地址 (不含域名)
3. __MODULE__:会替换成当前模块的URL地址 (不含域名)
4. __CONTROLLER__(__或者__URL__ 兼容考虑): 会替换成当前控制器的URL地址(不含域名)
5. __ACTION__:会替换成当前操作的URL地址 (不含域名)
6. __SELF__: 会替换成当前的页面URL
7. __PUBLIC__:会被替换成当前网站的公共目录 通常是 /Public/