产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请编程助手免费智能写代码、翻译NewAMYSQL 免费MySQL管理工具AMFTP 免费FTP管理客户端

AMH 社区首页

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

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

geeklee
铁牌会员
89.00 价值分

geeklee 发表于 2013-12-29 11:15:19
本帖最后由 geeklee 于 2013-12-29 11:17 编辑

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

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


ThinkPHP提供的Nginx环境配置情况
在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现:
[*] location / { // …..省略部分代码
[*] if (!-e $request_filename) {
[*] rewrite ^(.*)$ /index.php?s=$1 last;
[*] break;
[*] }
[*]}
其实内部是转发到了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
铝牌会员
212.61 价值分

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

baitongda
铝牌会员
212.61 价值分

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

dudusee
铁牌会员
5.56 价值分

Apache模式呢
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2019-09-03 14:15:59 5
 1  (总1页)
AMH社区列表
用户服务中心