产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请 担保单 免费安全、零费率交易平台编程助手免费智能写代码、翻译AMYSQL 免费MySQL管理工具

AMH 社区首页

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

[综合话题] AMP无法实现隐藏入口index.php?

Bin
铁牌会员
48.27 价值分

Bin 发表于 2014-04-16 20:54:23
AMH环境下部署AMP框架,开启Path_info,但是无法实现隐藏入口文件index.php
thinkphp框架都能正确隐藏入口index.php

rewrite规则:
if (!-e $$$$request_filename) {
rewrite ^(.*)$$$$ /index.php/$$$$1 last;
)
同样的rewrite规则,对thinkphp有效,对AMP无效?
请问AMP如何实现开启Path_info模式下,隐藏入口index.php?
2014-04-16 20:54:23 1

Bin
铁牌会员
48.27 价值分

本人菜鸟,望高手指点,谢谢。
  支持 (4.27分)  反对 (0分)
回复  2014-04-16 20:56:14 2

amysql
创始人
16530.81 价值分

1) 先配置 \Amysql\Config.php
$Config['HttpPath'] = true; // 是否开启 index.php/Controller/Action/name/value 模式

2) 确认index.php/xxx 可正常访问
  支持 (0分)  反对 (0分)
回复  2014-04-18 11:04:31 3

AMH面板 - 好用高效低占用、安全可靠极稳定

Bin
铁牌会员
48.27 价值分

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是空的,没有获取到控制器和方法参数。
  支持 (0分)  反对 (0分)
回复  2014-04-19 15:26:07 4

amysql
创始人
16530.81 价值分

引用:
Bin 发表于 2014-4-19 15:26
if ($Config['HttpPath'])
{
$GETParam = (strlen($_SERVER['REQUEST_URI']) > strlen($_SERVER['SCRI ...


$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']), '/')) : '';
  支持 (0分)  反对 (0分)
回复  2014-04-20 14:41:53 5
 1  (总1页)
AMH社区列表
用户服务中心