当前位置: > Linux服务器 > nginx >

nginx中alias无法解析php的解决办法

时间:2014-07-05 13:31来源:linux.it.net.cn 作者:IT网

nginx中alias无法解析PHP的解决办法,有需要的朋友可以参考下。

配置文件(注意看下面的中文注释):
 

复制代码代码如下:

server {
  listen       80;
  server_name  xxxx.com.cn;

  error_log  /tmp/eror.log;
  set $www_root /home/web/yqbb/bgskk;

  location / {
      root   $www_root;
      index  index.html index.php;
  }

  location /feedback {
      index  index.php;
      alias /home/web/yqbb/bgskk/app/htdocs;
  }

  error_page   500 502 503 504  /50x.html;
  location = /50x.html {
      root   html;
  }

  location ~ ^/feedback/.+\.php$ {
    root /home/web/yqbb/bgskk/app/htdocs;
    rewrite /feedback/(.*\.php?) /$1 break;
    include fastcgi.conf;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param SCRIPT_FILENAME /home/web/yqbb/bgskk/app/htdocs/$fastcgi_script_name;
  }

  location ~ .*\.(php|php5)?$ {
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi.conf;
  }
}

server
{
  listen 80;  #端口号
  server_name www.it.net.cn;   #域名
  index index.html index.htm index.php index.shtml;  #默认首页
  root  /var/www/html;  #网站根目录
  charset gbk;    #默认编码

  location /public/  #设定要重写的目录名
  {
    alias /var/www/public/; #重定向目的目录。

    #例:如果用户访问http://www.it.net.cn/public/test.html 不会访问/var/www/html/public/test.html,而访问的是/var/www/public/test.html,虽然这个文件并没有在域名目录下
  }

#做完上面的设置后,我们发现访问PHP文件http://www.it.net.cn/public/test.php时,还是去访问了/var/www/html/public/test.php,也就是说访问php文件没有起到重定向的作用,所以我们还要配置如下这段

#start
  location ~ ^/public/.+\.php$
  {
    root /var/www/html/web/news/public;
    rewrite /public/(.*\.php?) /$1 break;
    include fastcgi.conf;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
  }

#end
location ~ .*\.(php|php5)?$
  {
      #fastcgi_pass  unix:/tmp/php-cgi.sock;
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      #include fcgi.conf;
      include fastcgi.conf;
      rewrite  ^/([a-zA-Z]+)\/([a-zA-Z]+)$ /$2.shtml last;
  }

  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  {
      expires      30d;  #缓存30天
  }

  location ~ .*\.(js|css)?$
  {
      expires      1h; #缓存1个小时
  }

  access_log  /var/log/oschina.log  access;  #定义日志文件
  ssi on;
  ssi_silent_errors on;
  ssi_types text/shtml;
}


(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容