主页 > Nginx | WEB开发 > 修改NGINX配置完美支持PATH_INFO路由模式

修改NGINX配置完美支持PATH_INFO路由模式

2010 年 11 月 12 日 没有评论
  1. location ~ \.php
  2. {
  3. fastcgi_index index.php;
  4. fastcgi_pass 127.0.0.1:9000;
  5. include fastcgi_params;
  6. set $path_info “”;
  7. set $real_script_name $fastcgi_script_name;
  8. if ($fastcgi_script_name ~ “^(.+?\.php)(/.+)$”) {
  9. set $real_script_name $1;
  10. set $path_info $2;
  11. }
  12. fastcgi_param SCRIPT_FILENAME /var/html/$real_script_name;
  13. fastcgi_param SCRIPT_NAME $real_script_name;
  14. fastcgi_param PATH_INFO $path_info;
  15. }
    ++++++++++++++++++++++++++++++++++++++++++++++++
  1. location ~* .*\.php($|/)
  2. {
  3. fastcgi_split_path_info ^(.+\.php)(.*)$;
  4. fastcgi_param SCRIPT_NAME $fastcgi_script_name;
  5. fastcgi_param PATH_INFO $fastcgi_path_info;
  6. fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
  7. if ($request_filename ~* .*\.php$) {
  8. set $is_path_info ’0′;
  9. }
  10. if (-e $request_filename) {
  11. set $is_path_info ’1′;
  12. }
  13. if ($is_path_info ~ ’0′) {
  14. return 403;
  15. }
  16. }
    NGINX环境下不支持PATH_INFO导致PHP框架开发的网站不能使用解决办法
    目前大部分PHP框架都是以PATH_INFO路由模式为默认模式,但nginx默认是不支持path_info路由模式【0.7.3版前部支持PATH_INFO路由模式】,那么如何修改其配置支持PATH_INFO模式呢?

    修改NGINX配置文件,在http段或者server段加入上面所示的代码!

    修改完毕后用nginx自带的配置检测命令检测是否正确,如正确,重启nginx即可

Tags: Nginx PATH_INFO

发表评论

电子邮件地址不会被公开。 必填项已用*标注


*

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>