Nginx服务器中一个域名部署两个WordPress的伪静态配置
2022-03-19
使用一个域名部署两个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;
}
}
需要替换的部分:
- server_name 域名
- root 项目路径
- 二级目录名
- (可选)$document_root 项目绝对路径
注:location /二级目录名/ {…} 一定要放在 location / {…} 之前。
笔者对Nginx中的配置不是非常熟悉,完全靠摸索整出的一套,不一定是最佳方案,仅供参考。
(版权归cpury.com所有,转载请注明出处。)