AMH开源社区

AMH社区 - 开放自由有价值的社区

[求助帖] ThinkPHP Rewrite方法 【总结贴】

geeklee
铁牌会员
89.00 价值分

9,148 次阅读   4 张回复   geeklee 发表于 2013-12-29 11:15:19
[i=s] 本帖最后由 geeklee 于 2013-12-29 11:17 编辑 [/i]

很多朋友们在找ThinPHP的Rewrite方法,本帖来个终结吧!

Thinkphp REWRITE模式 2
该URL模式和PATHINFO模式功能一样,除了可以不需要在URL里面写入口文件,和可以定义.htaccess 文件外。在开启了Apache的URL_REWRITE模块后,就可以启用REWRITE模式了,具体参考下面的URL重写部分。四、兼容模式: 设置URL_MODEL 为3
兼容模式是普通模式和PATHINFO模式的结合,并且可以让应用在需要的时候直接切换到PATHINFO模式而不需要更改模板和程序,还可以和URL_WRITE模式整合。兼容模式URL可以支持任何的运行环境。
兼容模式的效果是:[list=1]
[*]http://serverName/appName/?s=/module/action/id/1/
[/list]并且也可以支持参数分割符号的定义,例如在URL_PATHINFO_DEPR为~的情况下,下面的URL有效:[list=1]
[*]http://serverName/appName/?s=module~action~id~1
[/list]

ThinkPHP提供的Nginx环境配置情况
在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现:[list=1]
[*] location / { // …..省略部分代码
[*] if (!-e $request_filename) {
[*] rewrite ^(.*)$ /index.php?s=$1 last;
[*] break;
[*] }
[*]}
[/list]其实内部是转发到了ThinkPHP提供的兼容模式的URL,利用这种方式,可以解决其他不支持PATHINFO的WEB服务器环境。



AMH操作流程
1、在/usr/local/nginx/conf/rewrite下面新建一个规则文件thinkphp.conf

2、将内容修改为如下:
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}

3、在面板编辑主机选择Rewrite规则:thinkphp.conf 就OK啦!

评价: 这个问题有价值吗?  没有 (0分)   有, 感谢 (1分)
2013-12-29 11:15:19 1

com
铜牌会员
692.00 价值分

来学习学习
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2013-12-29 11:55:17 2

baitongda
铁牌会员
198.00 价值分

来。。。一起动起来!@
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2016-05-06 09:14:06 3

baitongda
铁牌会员
198.00 价值分

无效啊。还是会加载不到一些文件!
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2016-08-23 11:55:40 4

dudusee
铁牌会员
10.00 价值分

Apache模式呢
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2019-09-03 14:15:59 5
 1  (总1页)
AMH社区列表
旅客不可参与帖子, 请您先登录
用户服务中心