配置nginx使之支持pathinfo

phalcon项目,
oneinstack环境lnmp。
配置文件:
/usr/local/nginx/conf/vhost/dldh.ccc.conf
自动生成的。

问题:
除首页外,其他都打不开,且样式文件也打不开。
http://dldh.ccc/index.php/back/css/bootstrap.min.css
http://dldh.ccc/index.php/backend/index/index
都报: Access denied.

解决办法:
作修改如下。


server {
  listen 80;
  server_name dldh.ccc;
  access_log off;
  index index.html index.htm index.php;
  root /web/dldh/public;

  try_files $uri $uri/ @rewrite; #增加这一句
                    location @rewrite{  #增加这一句
        rewrite ^/(.*)$ /index.php?_url=/$1; #增加这一句
  }

  #include /usr/local/nginx/conf/rewrite/none.conf;#注释这一句
  #error_page 404 /404.html;
  #error_page 502 /502.html;

  location ~ [^/]\.php(/|$) {
    #fastcgi_pass remote_php_ip:9000;
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    fastcgi_split_path_info ^(.+\.php)(.*)$; #增加这一句
    fastcgi_param PATH_INFO $fastcgi_path_info; #增加这一句
  }

  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
    expires 30d;
    access_log off;
  }
  location ~ .*\.(js|css)?$ {
    expires 7d;
    access_log off;
  }
  location ~ /\.ht {
    deny all;
  }
}

参考:
nginx下支持PATH_INFO详解[1]
https://blog.csdn.net/hanzengyi/article/details/53483171
简单配置nginx使之支持pathinfo
https://www.cnblogs.com/kzfbk/p/7302623.html

原文地址:http://blog.51cto.com/phpervip/2112880

时间: 2024-10-12 19:53:03

配置nginx使之支持pathinfo的相关文章

简单配置nginx使之支持pathinfo

只需要修改3个地方就可以了 location ~ \.php {    #去掉$ root          H:/PHPServer/WWW; fastcgi_pass   127.0.0.1:9000; fastcgi_index  index.php; fastcgi_split_path_info ^(.+\.php)(.*)$;     #增加这一句 fastcgi_param PATH_INFO $fastcgi_path_info;    #增加这一句 fastcgi_param 

简单配置nginx使之支持phpinfo

server { listen 80; server_name localhost; index index.html index.htm index.php; root /alidata/www/pro; location ~ .*\.(php|php5)?$ { #fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; in

配置 squid 使其支持 访问https站点

需求:让用户通过squid访问https网站 注意和配置squid使其支持https不同 网上的资料基本都是给squid配置一个证书,但直觉告诉我这并不能解决我们的问题 进入正题,通过之前配置好的squid访问http站点可以正常访问, 但无法访问https开头的网站 查找问题最好的方法就是分析日志 access.log中发现如下信息 NONE/400 4280CONNECT error:method-not-allowed - NONE/- text/html 查看 squid.conf ,默

如何配置IIS使其支持APK文件的下载

如何配置IIS使其支持APK文件的下载APK文件是安卓的安装程序的文件,IIS里的MIME里默认是不支持的.如果没有配置MIME时,直接输入网址要下载APK文件时,会提示找不到此文件.这里教你如何配置IIS的MIME设置,使其可以支持APK文件的下载.1.在管理工具里打开Internet 信息服务(IIS)管理器.然后选择需要配置的网站.2.右侧的界面中会显示该网站的所有功能配置,我们选择并点击进入“MIME类型”3.在右侧的操作区选择点击“添加”MIME.4.在弹出的添加窗口里的文件扩展名输入

配置apache使之支持浏览器端的缓存

当直接在浏览器中输入一个URL,或者点击一个链接的时候,那么浏览器缓存就会起作用,如果缓存没有过期,那么浏览器会从本地读取资源,不会发起HTTP请求,如果缓存过期,那么浏览器会发起新的浏览器请求. 一.适用直接访问,非F5刷新页面的情况下 Expires是HTTP/1.0的缓存头, Cache-Control: max-age 是HTTP/1.1是用来进行HTTP缓存的头.Expires指定了资源过期的绝对时间,GMT格式,Cache-Control: max-age指定了资源过期的相对时间,单

thinkphp配置nginx伪静态并解决PATHINFO问题和fix_pathinfo漏洞

nginx.conf的server配置,当文件不存在时,就采用伪静态 server{ listen 801; index index.html index.htm index.php; root D:/data/code/jsjh-admin/wwwroot; location /{ if (!-e $request_filename) { rewrite ^(.*)$ /index.php$1 last; } } include dotphp.conf; } dotphp.conf配置php的

全部用startssl生成的证书,配置Apache使其支持SSL

Apache的编译安装见这篇: http://www.cnblogs.com/yjken/p/3921840.html 网上查阅了一大批资料,得知自己生成的证书是会被浏览器提示“证书不安全”的,我也就没有去生成证书,而是直接去了startssl 申请了一个免费的证书,据说startssl也是全球唯一的一个可以申请免费ssl证书的地方,并且是被主流浏览器(firefox,chrome,IE,safari)认可的,所以,对于安全性要求不高的情景,免费的证书已经完全满足需求了,当然,如果你的安全性要求

配置nginx1.7.8支持pathinfo模式

vi nginx/conf/nginx.conf 1.修改正则 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_pa

配置IIS使其支持APK文件的下载

在管理工具里打开Internet 信息服务(IIS)管理器.然后选择需要配置的网站. 右侧的界面中会显示该网站的所有功能配置,我们选择并点击进入“MIME类型” 在左侧的操作区选择点击“添加”MIME.在弹出的添加窗口里的文件扩展名输入:APK 在MIME类型输入:application/vnd.android.package-archive 按确定.这就完成配置了,现在列表里就有一条apk的MIME.我们这里来验证一下结果如何,输入网址后,自动弹出了一个下载框,成功.