Nginx服务器中一个域名部署两个WordPress的伪静态配置

使用一个域名部署两个WordPress,分别安装在根目录和二级目录。

WordPress伪静态配置的方法其实有很多,本文选用比较常见的一种。

根目录伪静态配置

配置根目录,与一般建站配置完全相同。

	location / {
		if (-f $request_filename/index.html){
			rewrite (.*) $1/index.html break;
		}
		
		if (-f $request_filename/index.php){
			rewrite (.*) $1/index.php;
		}
		
		if (!-f $request_filename){
			rewrite (.*) /index.php;
		}
	}

二级目录伪静态配置

与根目录相比,只需要修改两处目录名即可。

网上大部分实际案例中的根目录网站是其他类型的cms程序,没有冲突问题,伪静态比较简单,仅需要配置二级目录,注意区分。

	location /二级目录名/ {
		if (-f $request_filename/index.html){
			rewrite (.*) $1/index.html break;
		}
		
		if (-f $request_filename/index.php){
			rewrite (.*) $1/index.php;
		}
		
		if (!-f $request_filename){
			rewrite (.*) /二级目录名/index.php;
		}
	}

完整配置

server {
	listen       80;
	server_name  xxxxxxxxxx.com;

	root  /Users/tom/www;
	index  index.html index.htm index.php;

	location /二级目录名/ {
		if (-f $request_filename/index.html){
			rewrite (.*) $1/index.html break;
		}
		
		if (-f $request_filename/index.php){
			rewrite (.*) $1/index.php;
		}
		
		if (!-f $request_filename){
			rewrite (.*) /二级目录名/index.php;
		}
	}

	location / {
		if (-f $request_filename/index.html){
			rewrite (.*) $1/index.html break;
		}
		
		if (-f $request_filename/index.php){
			rewrite (.*) $1/index.php;
		}
		
		if (!-f $request_filename){
			rewrite (.*) /index.php;
		}
	}

	location ~ \.php$ {
		root           html;
		fastcgi_pass   127.0.0.1:9000;
		fastcgi_index  index.php;
		fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include        fastcgi_params;
	}
}

需要替换的部分:

  1. server_name 域名
  2. root 项目路径
  3. 二级目录名
  4. (可选)$document_root 项目绝对路径

注:location /二级目录名/ {…} 一定要放在 location / {…} 之前。

笔者对Nginx中的配置不是非常熟悉,完全靠摸索整出的一套,不一定是最佳方案,仅供参考。

(版权归cpury.com所有,转载请注明出处。)