thinkphp的nginx rewrite问题
我的配置如下,根本没有rewrite
server
{
listen 80;
server_name domain;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/blog;
#error_page 404 /404.html;
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php/$1 last;
break;
}
}
location ~ .php/?.*$
{
# comment try_files $uri =404; to enable pathinfo
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
#include pathinfo.conf;
}
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*.(js|css)?$
{
expires 12h;
}
access_log /home/wwwlogs/domain.log access;
}
我访问http://domain/article/extjs/的时候,404,我看了一下access.log
里面是这样的
1.***.***.*** - - [03/Dec/2015:17:08:31 +0800] "GET /article/extjs/ HTTP/1.1" 404 564 "http://114.**.**.**/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
thinkphp的url model 是2,也就是REWRITE模式
说明根本没有rewrite啊,这个问题出在哪里呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
好的,谢谢你! 我说一下 我刚自己找到了解决方案 rewrite ^(.*)$ /index.php/$1 last;,这里写成 rewrite ^(.*)$ /index.php?s=$1 last 这样也可以。
location / {
root /home/wwwroot/blog;
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php/$1;
}
}
location ~ .php/?.*$ {
root /home/wwwroot/blog;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}
试试这样。。。/ URL_MODEL用默认值就行。