用户
 找回密码
 入住 CI 中国社区
搜索
查看: 6920|回复: 10
收起左侧

[已解决] 关于NGINX 和 CI 头疼的问题,寻求解决

[复制链接]
发表于 2012-4-9 16:33:12 | 显示全部楼层 |阅读模式
本帖最后由 cxzlr 于 2012-4-10 09:56 编辑

头疼的需求     知识点应该属于NGINX  url 重写的范畴
1.泛域名解析
2.除aqp.test.com ,www.test.com ,test.com,beta.test.com 外 全部 解析到某一个地址
3.去除index.php
现请高手们讨论下如何解决,知识点应该属于NGINX  url 重写的范畴
当为域名 aqp.test.com ,www.test.com ,test.com,beta.test.com  正常访问
其它域名 如 33.test.com  内部访问的是 www.test.com/index.php/web/index      网址栏中看到的以然是 33.test.com
                     44.test.com  内部访问的是 www.test.com/index.php/web/index      网址栏中看到的以然是 44.test.com

如果访问 www.test.com/index.php/web/index/news/23  

如何实现以上功能


目前的NGINX配置如下

  1. server {
  2.     listen       80;
  3.     server_name beta.test.com test.com www.test.com
  4.     set $wwwroot /usr/share/nginx/html;
  5.      location / {
  6.        root $wwwroot;
  7.        index index.html index.htm index.php;
  8.        rewrite ^/$ /index.php last;
  9.        rewrite ^/(?!index\.php|robots\.txt|bbs|public)(.*)$ /index.php/$1 last;
  10.      }
  11.      error_page   500 502 503 504  /50x.html;
  12.      location = /50x.html {
  13.         root   $wwwroot;
  14.      }
  15.     location  ~^(.+\.php)(.*)$ {
  16.         root          $wwwroot;
  17.         fastcgi_pass   127.0.0.1:9000;
  18.         fastcgi_index  index.php;
  19.         fastcgi_split_path_info ^(.+\.php)(.*)$;
  20.         include        fastcgi_params;
  21.     }
  22.     location ~* ^.+\.(jpg|jpeg|gif|png|bmp)$ {
  23.       access_log off;
  24.       root $wwwroot;
  25.       expires 30d;
  26.       break;
  27.    }
  28.     location ~ /\.ht {
  29.         deny  all;
  30.     }
  31. }


复制代码


 楼主| 发表于 2012-4-9 17:03:27 | 显示全部楼层
寻求高手解决
发表于 2012-4-9 17:09:39 | 显示全部楼层
nginx我也没配置好 所以后台干脆直接用了apache做PHP处理 这样pathinfo就很容易解决了
 楼主| 发表于 2012-4-9 17:57:23 | 显示全部楼层
哪个高手给处理下。
发表于 2012-4-9 20:37:29 | 显示全部楼层
本帖最后由 暗夜星辰 于 2012-4-9 20:38 编辑

if ($host != ‘www.test.com’ ) {
     rewrite ^/(.+)$ /index.php last;
}

发表于 2012-4-9 20:45:46 | 显示全部楼层
放~~~~~来了
 楼主| 发表于 2012-4-9 21:46:00 | 显示全部楼层
继续寻找高手结决呀。
 楼主| 发表于 2012-4-9 23:58:18 | 显示全部楼层
暗夜星辰 发表于 2012-4-9 20:37
if ($host != ‘www.test.com’ ) {
     rewrite ^/(.+)$ /index.php last;
}

我想 重写到
www.test.com/index.php/web/index
下面
发表于 2012-4-10 00:50:38 | 显示全部楼层
本帖最后由 暗夜星辰 于 2012-4-10 00:51 编辑

关键词:nginx 反向代理

关键代码:
server
        {
            listen          80;
            server_name    33.test.com;

            location / {
                proxy_pass              www.test.com/index.php/web/index;
                proxy_redirect          off;
                proxy_set_header        X-Real-IP       $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                }
}

简单解释:将 www.test.com/index.php/web/index  反向 映射到 33.test.com 的根目录
 楼主| 发表于 2012-4-10 09:55:46 | 显示全部楼层
反向代理,方法不错。

本版积分规则