nginx alias 无法解析php的解决办法(附带一些nginx基本设置)

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

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

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

#做完上面的设置后,我们发现访问PHP文件http://www.domain.com/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/domain.log  access;  #定义日志文件
        ssi on;
        ssi_silent_errors on;
        ssi_types text/shtml;
    }


你可能感兴趣的:(LINUX,PHP)