这几天有几台WordPress web服务器从Apache转换到Nginx,中间出现了很多问题,请记录下来,以便以后维护。

对于WordPress站点来说,固定链接主要是通过根目录下的.htaccess文件来控制,切换服务器后,Nginx的rewrite格式和Apache的不同,需要修改。

先卸载Apache系统,之后安装Nginx系统。

在BT面板后台,点“网站”-“设置”-“伪静态”,对于单站点的WordPress来说,原先的.htaccess文件内容如下:

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . [L]

切换到Nginx系统后,其配置内容如下:

location / {

try_files $uri $uri/ ?$args;

}

rewrite /wp-admin$ $scheme://$host$uri/ permanent;

对于子域名方式的多站点的WordPress来说,原先的.htaccess文件内容如下:

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^ - [L]

RewriteRule ^(wp-(content|admin|includes).*) $1 [L]

RewriteRule ^(.*\.php)$ $1 [L]

RewriteRule . index.php [L]

切换到Nginx系统后,其配置内容如下:

if (!-e $request_filename) {

rewrite ^.+?(/wp-.*) $1 last;

rewrite ^.+?(/.*\.php)$ $1 last;

rewrite ^ last;

}

此外,服务器上还安装了v2ray,原先在Apache里配置的内容如下:

RewriteEngine On

RewriteCond %{HTTP:Upgrade} =websocket [NC]

RewriteRule /test/(.*) w$1 [P,L]

RewriteCond %{HTTP:Upgrade} !=websocket [NC]

RewriteRule /test/(.*) $1 [P,L]

切换到Nginx后,在Nginx服务器配置文件里修改的内容如下:

location /test/ {

proxy_pass ;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

proxy_set_header Host $http_host;

}

1.《WordPress切换到Nginx服务器教程》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《WordPress切换到Nginx服务器教程》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/yule/2064742.html