AMH 社区首页
AMH社区 - 开放自由有价值的社区
[综合话题] AMP无法实现隐藏入口index.php? |
|
---|---|
Bin |
Bin 发表于 2014-04-16 20:54:23
AMH环境下部署AMP框架,开启Path_info,但是无法实现隐藏入口文件index.php
thinkphp框架都能正确隐藏入口index.php rewrite规则: if (!-e $$$$request_filename) { 同样的rewrite规则,对thinkphp有效,对AMP无效?rewrite ^(.*)$$$$ /index.php/$$$$1 last; ) 请问AMP如何实现开启Path_info模式下,隐藏入口index.php?
点赞,加油! (2分)
2014-04-16 20:54:23 1
|
Bin |
本人菜鸟,望高手指点,谢谢。
回复
2014-04-16 20:56:14 2
|
amysql |
1) 先配置 \Amysql\Config.php
$Config['HttpPath'] = true; // 是否开启 index.php/Controller/Action/name/value 模式 2) 确认index.php/xxx 可正常访问
回复
2014-04-18 11:04:31 3
AMH面板 - 好用高效低占用、安全可靠极稳定 |
Bin |
if ($Config['HttpPath'])
{ $GETParam = (strlen($_SERVER['REQUEST_URI']) > strlen($_SERVER['SCRIPT_NAME'])) ? explode('/', trim(str_ireplace($_SERVER['SCRIPT_NAME'], '', $_SERVER['REQUEST_URI']), '/')) : ''; 仔细阅读了一下代码,发现问题出在URL解析这里。 这段url解析代码需要完善一下: 比如Rewrite以后,AMP部署在非根目录的相关判断,以及其它url模式参数的获取等。 一楼遇到的情况是: 控制器名称和执行方法名称的长度小于SCRIPT_NAME,所以最后$GETParam是空的,没有获取到控制器和方法参数。
回复
2014-04-19 15:26:07 4
|
amysql |
引用: $GETParam = (strlen($_SERVER['REQUEST_URI']) > strlen($_SERVER['SCRIPT_NAME'])) ? explode('/', trim(str_ireplace($_SERVER['SCRIPT_NAME'], '', $_SERVER['REQUEST_URI']), '/')) : ''; 换成DOCUMENT_URI吧。 $GETParam = (strlen($_SERVER['DOCUMENT_URI']) > strlen($_SERVER['SCRIPT_NAME'])) ? explode('/', trim(str_ireplace($_SERVER['SCRIPT_NAME'], '', $_SERVER['DOCUMENT_URI']), '/')) : '';
回复
2014-04-20 14:41:53 5
|