我有一个WordPress的多站点子文件夹网站,其中所有的图片和CSS文件都显示为404。如果我把路径中的多站点Slug删除,我可以访问文件,就像这样。
https://example.com/wp-content/uploads/sites/11/2019/08/18248332854553431489.png
但是,如果多站点的slug在url中,那就不行了。https://example.com/multi-site-slug/wp-content/uploads/sites/11/2019/08/18248332854553431489.png
我已经尝试了几种不同的.htaccess配置,试图让它工作,但没有用。
以下是现在的.htaccess文件的情况。
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# END WordPress
我已经尝试了几种方法的东西上传的文件,包括:
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
...和这个(其中N=网站编号,如11)。
RewriteRule ^([_0-9a-zA-Z-]+/)?siteN/files/(.+) wp-content/blogs.dir/N/files/$2 [L]
此外,文件和图像工作正常的主网站。
更新
我检查了我的NGINX错误日志,发现我收到了以下错误。
[error] 27521#0: *489567 open() "/home/example/public_html/multi-site-slug/wp-content/uploads/sites/11/2019/08/123418248332854553431489.png" failed (2: No such file or directory), client: XX.XXX.XX.XXX, server: example.com, request: "GET /multi-site-slug/wp-content/uploads/sites/11/2019/08/123418248332854553431489.png HTTP/2.0", host: "example.com"
检查你是否启用了CGI和FastCGI支持。我花了两天时间调试WPMS的问题,直到我决定完全排除故障。
原来,我关掉了对CGI的支持,可能是为了性能吧,在某些时候。