zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

nginx中path模式配置示例

配置模式Nginx 示例 path
2023-06-13 09:15:38 时间

nginx服务器默认是不支持pathinfo模式的,即类似index.php/index形式的url会提示404。在这里,需要对nginx配置文件中需要开启pathinfo模式的server予以修改配置,修改nginx.conf文件如下:

复制代码代码如下:


server{
 server_name  blog.com;
 listen       80;
 root         /home/wwwroot/blog;
 index        index.phpindex.htmlindex.htm;
  
 access_log   /data/log/blog.access.log;
 error_log    /data/log/blog.error.log;

 location/{
  indexindex.php;
  if(!-e$request_filename){
   rewrite^/(.*)$ /index.php/$1  last;
   break;
  }
 }

 location~\.php{
  #fastcgi_pass 127.0.0.1:9000;
  fastcgi_passunix:/dev/shm/php-cgi.sock;
  fastcgi_indexindex.php;
  #fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
  include      fastcgi.conf;
  include      fcgi_pathinfo.conf;
  set  $real_script_name$fastcgi_script_name;
  if($fastcgi_script_name~"^(.+?\.php)(/.+)$"){
   set$real_script_name$1;
   set$path_info       $2;
  }
  fastcgi_paramSCRIPT_FILENAME$document_root$real_script_name;
  fastcgi_paramSCRIPT_NAME$real_script_name;
  fastcgi_paramPATH_INFO$path_info;
 }
      location~.*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)${
  expires30d;
   }

     location~.*\.(js|css)?${
          expires7d;
      }

  error_page404               /404.html;
  error_page 500502503504   /50x.html;
  location=/50x.html{
    root/home/wwwroot/;
  }
}

并添加fcgi_pathinfo.conf如下:

复制代码代码如下:


fastcgi_param QUERY_STRING      $query_string;
fastcgi_param REQUEST_METHOD    $request_method;
fastcgi_param CONTENT_TYPE      $content_type;
fastcgi_param CONTENT_LENGTH    $content_length;
fastcgi_param REQUEST_URI       $request_uri;
fastcgi_param DOCUMENT_URI      $document_uri;
fastcgi_param DOCUMENT_ROOT     $document_root;
fastcgi_param SERVER_PROTOCOL   $server_protocol;
fastcgi_param HTTPS             $httpsif_not_empty;

fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE   nginx/$nginx_version;


fastcgi_param REMOTE_ADDR       $remote_addr;
fastcgi_param REMOTE_PORT       $remote_port;
fastcgi_param SERVER_ADDR       $server_addr;
fastcgi_param SERVER_PORT       $server_port;
fastcgi_param SERVER_NAME       $server_name;

fastcgi_param REDIRECT_STATUS   200;

重要的就是,~\.php后面不能有$,以便能够匹配所有*.php/*形式的url,并且if与后面的括号之间必须有一个空格。

完毕之后,重启nginx。