WordPress 多站点目录 nginx 配置
WordPress Multisite directory nginx config
我正在尝试使用 nginx 后面的子目录设置 WordPress Multisite。
最初我的 WordPress 托管在 https://example.com/wordpress
,现在我将它移至 Multisite。
wp-config.php
看起来不错:
define('WP_DEBUG', false);
define( 'WP_ALLOW_MULTISITE', true );
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'example.com');
define('PATH_CURRENT_SITE', '/wordpress/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1); `
我的nginx.conf
是:
server {
listen 80;
server_name example.com;
root /var/www/; # wordpress is at /var/www/wordpress, All wp files are in this wordpress folder
index index.php;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log;
recursive_error_pages on;
location / {
try_files $uri $uri/ /wordpress/index.php?q=$uri&$args;
}
# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
# Pass uploaded files to wp-includes/ms-files.php.
rewrite /files/$ /wordpress/index.php last;
if ($uri !~ wp-content/plugins) {
rewrite /files/(.+)$ /wordpress/wp-includes/ms-files.php?file= last;
}
# Rewrite multisite '.../wp-.*' and '.../*.php'.
if (!-e $request_filename) {
rewrite_log on;
rewrite ^/(/[^/]+)?(/wp-.*) wordpress/ last;
rewrite ^/(/[^/]+)?(/.*\.php) wordpress/ last;
# rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) last;
# rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ last;
}
location ~* /(?:uploads|files)/.*\.php$ {
deny all;
}
location ~ \.php$ {
set $skip_cache 0;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {
set $skip_cache 1;
}
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
fastcgi_cache microcache;
fastcgi_cache_valid 200 5m;
}
}
我创建了一个名为 "Site2" 的网站:https://example.com/wordpress/site2
但是这个网站没有正确加载页面。当我查看
https://example.com/wordpress/site2/wp-admin/
我收到错误:
This webpage has a redirect loop.
如果能立即提供帮助,我们将不胜感激。
好的,如果您希望您的网站 运行 为
这是您可以做的,
转到网络设置>站点
将 site2 地址从 /wordpress/site2 更改为 /site2
还需要修复,nginx配置如下
# rewrite ^/(/[^/]+)?(/wp-.*) wordpress/ last;
# rewrite ^/(/[^/]+)?(/.*\.php) wordpress/ last;
rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) /wordpress last;
rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ /wordpress last;
那是您需要使用未注释的代码,并进行一些修复
我正在尝试使用 nginx 后面的子目录设置 WordPress Multisite。
最初我的 WordPress 托管在 https://example.com/wordpress
,现在我将它移至 Multisite。
wp-config.php
看起来不错:
define('WP_DEBUG', false);
define( 'WP_ALLOW_MULTISITE', true );
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'example.com');
define('PATH_CURRENT_SITE', '/wordpress/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1); `
我的nginx.conf
是:
server {
listen 80;
server_name example.com;
root /var/www/; # wordpress is at /var/www/wordpress, All wp files are in this wordpress folder
index index.php;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log;
recursive_error_pages on;
location / {
try_files $uri $uri/ /wordpress/index.php?q=$uri&$args;
}
# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
# Pass uploaded files to wp-includes/ms-files.php.
rewrite /files/$ /wordpress/index.php last;
if ($uri !~ wp-content/plugins) {
rewrite /files/(.+)$ /wordpress/wp-includes/ms-files.php?file= last;
}
# Rewrite multisite '.../wp-.*' and '.../*.php'.
if (!-e $request_filename) {
rewrite_log on;
rewrite ^/(/[^/]+)?(/wp-.*) wordpress/ last;
rewrite ^/(/[^/]+)?(/.*\.php) wordpress/ last;
# rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) last;
# rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ last;
}
location ~* /(?:uploads|files)/.*\.php$ {
deny all;
}
location ~ \.php$ {
set $skip_cache 0;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {
set $skip_cache 1;
}
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
fastcgi_cache microcache;
fastcgi_cache_valid 200 5m;
}
}
我创建了一个名为 "Site2" 的网站:https://example.com/wordpress/site2
但是这个网站没有正确加载页面。当我查看
https://example.com/wordpress/site2/wp-admin/
我收到错误:
This webpage has a redirect loop.
如果能立即提供帮助,我们将不胜感激。
好的,如果您希望您的网站 运行 为
这是您可以做的,
转到网络设置>站点 将 site2 地址从 /wordpress/site2 更改为 /site2
还需要修复,nginx配置如下
# rewrite ^/(/[^/]+)?(/wp-.*) wordpress/ last;
# rewrite ^/(/[^/]+)?(/.*\.php) wordpress/ last;
rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) /wordpress last;
rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ /wordpress last;
那是您需要使用未注释的代码,并进行一些修复