为了账号安全,请及时绑定邮箱和手机立即绑定

Nginx如何通过rewrite支持各种php框架

标签:
PHP

公司在开发新站点,所使用的框架式Drupal7.(挺蛋疼的一个框架,遇到不少问题,以后慢慢发上来)

在这里先介绍一下如何让nginx支持drupal,因为在apache是默认支持.htaccess文件的.所以一般的框架跑在apache上都是没问题的.但是nginx并不支持,其实大体意思是一样的只不过是语法不一样.所以就需要我们对照着原本站点的.htaccess文件把他的语句改写成nginx的rewrite语法.

这里先把我的配置发出来吧.

drupal框架--nginx重写
   location / {
       if (!-e $request_filename) {
           rewrite ^/(.*)$ /index.php?q=$1 last;
       }

其实只需要这一句就可以解决了.

下面会附加一些之前公司所用其他PHP框架的nginx重写.

ThinkPHP框架--nginx重写
   location / {
       if (!-e $request_filename){
            rewrite ^/(.*)$ /index.php?url=$1 last;
       }

CI框架--nginx重写
server
   {
     ……
     ……
       if ($request_filename !~* /(js|css|images|index.php)) {  \\这里  
       rewrite ^/$ /index.php last;               \\必须
       rewrite ^/(.*)$ /index.php/$1 last;            \\要写
       }            

       location ~ \\.php{
       fastcgi_pass 127.0.0.1:9000;
       fastcgi_index index.php;

       set $path_info "";                     \\这里
       set $real_script_name $fastcgi_script_name;        \\必
       if ($fastcgi_script_name ~ "^(.+?\\.php)(/.+)$"){     \\须
         set $real_script_name $1;               \\要
         set $path_info $2;                   \\写
         }                           \\上

include fastcgi.conf;
       fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;  \\这里
       fastcgi_param SCRIPT_NAME $real_script_name;           \\必须
       fastcgi_param PATH_INFO $path_info;               \\要写
       }  
   }


如果以后碰到别的我会在补上的。 目前接触的站点只有这三种


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消