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

AMH 社区首页

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

[综合话题] 请教大大如何支持Thinkphp的Pathinfo和Rewrite

shylocker120
银牌会员
2676.29 价值分

sangsi 发表于 2013-08-30 12:14:31
支持看吧阿帕奇还是有需要的呵呵。
回复  2013-08-31 17:17:09 11

amysql
创始人
99530.81 价值分

引用:
sangsi 发表于 2013-8-31 17:09
非常感谢老大抽空帮我看看,非常感谢,这个问题困扰我好久了。

你重写规则是
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}

index.php 打印:
print_r($_SERVER);

访问/ssl/login测试:
Array
(
[USER] => www
[HOME] => /home/www
[FCGI_ROLE] => RESPONDER
[PATH_INFO] =>
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_SOFTWARE] => nginx/1.2.8
[QUERY_STRING] => s=/ssl/login
[REQUEST_METHOD] => GET
[CONTENT_TYPE] =>
[CONTENT_LENGTH] =>
[SCRIPT_NAME] => /index.php
[REQUEST_URI] => /ssl/login
[DOCUMENT_URI] => /index.php


响应是正常的,
剩下就是框架那边的代码了。
是你在用这框架写的、还是在用某一程序?
看是怎么处理s那个参数。
  支持 (0分)  反对 (0分)
回复  2013-08-31 21:07:47 12

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

sangsi
铁牌会员
179.00 价值分

框架那边的代码是哪里有问题?
其中配置文件的URL配置项:
//默认1;URL模式:0 普通模式 1 PATHINFO 2 REWRITE 3 兼容模式
'URL_MODEL' => 2,
是我用TP测试写的,不知道该改动哪里,还请指点,谢谢啦。
  支持 (0分)  反对 (0分)
回复  2013-09-01 08:18:29 13

amysql
创始人
99530.81 价值分

引用:
sangsi 发表于 2013-9-1 08:18
框架那边的代码是哪里有问题?
其中配置文件的URL配置项:
//默认1;URL模式:0 普通模式 1 PATHINFO 2 REWR ...

PATHINFO 是有开启了,rewrite 也是有生效的。

问题是,这rewrite 的规则是你想要的么?

if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
  支持 (0分)  反对 (0分)
回复  2013-09-01 14:30:01 14

sangsi
铁牌会员
179.00 价值分

就是不懂这rewrite哈,我贴上原apahce的伪静态规则。
<IfModule mod_rewrite.c>
RewriteEngine on
#禁止目录浏览
Options -Indexes FollowSymLinks
#不显示index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
  支持 (0分)  反对 (0分)
回复  2013-09-01 16:15:13 15

l12ab
金牌会员
7345.06 价值分

你这apache伪静态的意思是
如果不是目录,如果不是文件
那么转发到index.php/$1

其中$1就是域名后面的部分,就是下面这个URL的xxxxxxxxxx
www.abc.com/xxxxxxxxxx
  支持 (0分)  反对 (0分)
回复  2013-09-01 16:45:30 16

l12ab
金牌会员
7345.06 价值分

本帖最后由 l12ab 于 2013-9-1 17:00 编辑

这样好像更简单

location / {
try_files $uri $uri/ /index.php?$uri&$args;
}
  支持 (0分)  反对 (0分)
回复  2013-09-01 16:56:16 17

sangsi
铁牌会员
179.00 价值分

谢谢l12ab,我试试看哈。
  支持 (0分)  反对 (0分)
回复  2013-09-01 17:15:39 18

sangsi
铁牌会员
179.00 价值分

问题终于解决了,在这里贴下Thinkphp伪静态规则,老大和l12ab的都是可以的,经过测试,是自己的疏忽,之前测试缓存没有情况,实在太大意了,感谢大伙的帮忙,非常感谢!
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php/$1 last;
break;
}
}
  支持 (0分)  反对 (0分)
回复  2013-09-01 17:24:51 19

shylocker120
银牌会员
2676.29 价值分

支持关注。
  支持 (0分)  反对 (0分)
回复  2013-09-02 18:34:24 20
< 1 2 3 >  (总3页)
AMH社区列表
用户服务中心