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

Nginx Alias 无法解析PHP的解决办法

时间:2015-10-10 14:07来源:linux.it.net.cn 作者:IT

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.oschina.net;   #域名
        index index.html index.htm index.php index.shtml;  #默认首页
        root  /var/www/html;  #网站根目录
        charset gbk;    #默认编码
 
        location /public/  #设定要重写的目录名
        {
                alias /var/www/public/; #重定向目的目录。
 
                #例:如果用户访问http://www.oschina.net/public/test.html 不会访问/var/www/html/public/test.html,而访问的是/var/www/public/test.html,虽然这个文件并没有在域名目录下
        }
 
#做完上面的设置后,我们发现访问PHP文件http://www.oschina.net/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)
------分隔线----------------------------
栏目列表
推荐内容