• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

记录nginx和php安装完后的URL重写,访问空白和隐藏index.php文件的操作方法 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
1 sudo cd /etc/nginx/;
2 sudo vi fastcgi_params;

 

1.URL重写

如果你的url参数不是用?xxx传递,而是自定义的,比如用/xx/xx/xx的方式传递,那么在nginx下就要开启pathinfo

典型配置:

1 location ~ \.php$ {
2     root           html;
3     fastcgi_pass   127.0.0.1:9000;
4     fastcgi_index  index.php;
5     fastcgi_param  SCRIPT_FILENAME  $DOCUMENT_ROOT$fastcgi_script_name;
6     include        fastcgi_params;
7 }

修改1,6两行,支持pathinfo

1 location ~ \.php(.*)$ { # 正则匹配.php后的pathinfo部分
2     root html;
3     fastcgi_pass   127.0.0.1:9000;
4     fastcgi_index  index.php;
5     fastcgi_param  SCRIPT_FILENAME  $DOCUMENT_ROOT$fastcgi_script_name;
6     fastcgi_param PATH_INFO $1; # 把pathinfo部分赋给PATH_INFO变量
7     include        fastcgi_params;
8 }

2.当URL重写后,比如访问xxx/index.php/xxx/xxx 会空白,而用?方式访问则正常

  a.修改fastcgi_params文件

sudo cd /etc/nginx/;
sudo vi fastcgi_params;

 

配置文件内容:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #这行没有就添加,有了就改成这样子

 

  b.修改nginx配置文件

  

location ~ .php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name; # 新增

       include fastcgi_params; # 新增
}

 

 

3.隐藏入口文件

  a.如果代码就在域名指向的根目录下,则

location / { // …..省略部分代码
   if (!-e $request_filename) {
   rewrite  ^(.*)$  /index.php?s=$1  last;
   break;
    }
}

 

  b.如果代码在域名指向的下级目录下,则

  

   #youdomain 是所在目录的名称。比如域名根目录为/var/www/html  代码所在目录为/var/www/html/wave/project,则此处youdomain均替换为wave/projetc
  location /youdomain/ { if (!-e $request_filename){ rewrite ^/youdomain/(.*)$ /youdomain/index.php?s=$1 last; } }

 

  ===

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap