nginx服务器绑定多个域名支持pathinfo路由隐藏index.php入口文件

Posted xincanzhe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx服务器绑定多个域名支持pathinfo路由隐藏index.php入口文件相关的知识,希望对你有一定的参考价值。

这篇文章仅仅是操作,解释说明部分待更新。

1. 修改nginx的配置文件(我的配置文件在/etc/nginx/nginx.conf)

[[email protected] ~]# find / -name nginx.conf      
[[email protected] ~]# vim /etc/nginx/nginx.conf    
nginx.conf配置文件的大致结构:
...
http{
    server{
    ...                      #一个server结构可以对应一个域名
    }  
    include vhosts/*.conf    #增加这一句,以后所有新增的域名都可以放在/etc/nginx/vhosts/下,便于分开管理,注意vhosts目录需要创建
}

2. 在/etc/nginx/vhosts/目录下,新增新域名的配置文件xincanzhe.conf(这边我要绑定一个www.xincanzhe.top的域名),复制nginx.conf中的server部分到xincanzhe.conf

server {
        listen       80;
        server_name  www.xincanzhe.top;    #新增域名名称

        #charset koi8-r;

        access_log  /data/wwwlogs/www.xincanzhe.top.log  combined;    #设置访问该域名产生的日志文件,无需创建设置后会自动生成

        location / {
            root   /data/wwwroot/xincanzhe/public/;    #域名指向的根目录
            index  index.html index.php index.htm;
            #隐藏index.php
            if (!-e $request_filename) {
                rewrite  ^(.*)$  /index.php?s=/$1  last;
                break;
            }
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           /data/wwwroot/xincanzhe/public/;    #域名指向的根目录
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            #使Nginx支持pathinfo路由
            fastcgi_split_path_info  ^(.+\.php)(.*)$;       #增加这一句
            fastcgi_param PATH_INFO  $fastcgi_path_info;    #增加这一句
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache‘s document root
        # concurs with nginx‘s one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

3. 如果需要再次新增域名,只需要在/etc/nginx/vhosts/新建一个配置文件即可。

 

以上是关于nginx服务器绑定多个域名支持pathinfo路由隐藏index.php入口文件的主要内容,如果未能解决你的问题,请参考以下文章

#WordPress小技巧#如何实现WordPress支持多个域名绑定/访问

GitHub Pages和每个项目绑定自定义域名(支持多个和顶级域名)

SSL证书是不是支持二级或多级域名?

nginx下TP5 隐藏入口文件+支持pathinfo模式+配置多项目根目录

一台服务器上多个网站怎么绑定域名?

如果在一个服务器上绑定多个域名?