Thinkphp url 问题

2015-03-27 12:25:03 +08:00
 amazingnic
初次接触thinkphp,部署thinkphp3.2之后,可以通过
http://192.168.0.168/index.php?s=/Home/Index/index
这种兼容方式访问,也可以通过
http://192.168.0.168/index.php?m=Home&c=Index&a=index
这种普通方式访问,但就是不能通过
http://192.168.0.168/index.php/Home/Index/index
这种PATHINFO方式访问,出现404.

Thinkphp模板中的conf文件都是默认配置,项目和分组中的conf文件都没做配置。按照开发手册中讲述的以上3种方式,只要conf配置了不就行了吗?求指导。。。
3222 次点击
所在节点    PHP
10 条回复
xzem
2015-03-27 12:31:11 +08:00
第三种方式要 .htaccess 做好伪静态规则
amazingnic
2015-03-27 12:41:28 +08:00
@xzem .htaccess中的规则如下:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
那么访问http://192.168.0.168/Home/Index/index之后,匹配的$1就是Home/Index/index,不是刚好rewrite成了http://192.168.0.168/index.php/Home/Index/index吗 ?但实际访问http://192.168.0.168/Home/Index/index也是404.
amazingnic
2015-03-27 12:49:14 +08:00
在nginx中做了rewrite就ok了。。
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?s=$1 last;
}
coosir
2015-03-27 13:10:09 +08:00
确认下服务器php.ini的配置,看看 pathinfo 模式有没有开启
coosir
2015-03-27 13:11:49 +08:00
nginx还是rewrite吧
aksoft
2015-03-27 15:55:48 +08:00
直接rewrite ,还要index.php干嘛?
jamlee
2015-03-27 18:26:53 +08:00
@aksoft index.php是入口 在这儿定义的很多常量嘛
march1993
2015-03-27 18:38:07 +08:00
@amazingnic
nginx 应该直接 try_files 吧?
location {
try_files $uri $uri/ /path/to/index.php =404;
}
march1993
2015-03-27 18:40:14 +08:00
@amazingnic
nginx 应该直接 try_files 吧?
location {
try_files $uri $uri/ /path/to/index.php;
}

不用加 =404 ……
aksoft
2015-03-28 15:56:06 +08:00
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/179688

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX