切换到多站点后上载到错误目录的图片

时间:2016-08-02 作者:Richard Hare

我已将现有站点转换为具有子域的多站点。有几个问题需要解决,但现在运行良好,只有一个例外:

主站点的图像正在上传,但子域的图像没有上传。例如,应放置在以下位置的图像:

/public_html/wp-content/uploads/sites/6/2016/08

...最终导致:

/public_html/wp-content/uploads/sites/6/sites/6/2016/08

我怀疑错误在下面的上传文件行中,但我不确定它在做什么。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?siteN/files/(.+) wp-content/blogs.dir/N/files/$2 [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]

# Redirect to www
RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

</IfModule>

# END WordPress
当我使用FTP将文件移动到正确的位置时,图像会在媒体库中按原样显示。

1 个回复
最合适的回答,由SO网友:Otto 整理而成

检查site\\u options表中ms\\u files\\u rewriting选项的值。

如果ms\\u files\\u重写被禁用,WordPress将自动将/站点/编号附加到子站点的上载路径值。

对于WordPress 3.5之后创建的任何多站点网络,默认情况下应禁用此设置。它应该只对较旧的网络启用。

如果该设置已正确禁用,则只需从上载路径中删除额外的/sites/6即可。WordPress将为您添加它。

基本上,WordPress 3.5改变了多站点上传的存储方式,以及这些上传路径选项的工作方式。该设置用于区分两种不同的配置。/blog。事情还是老样子。新方法只是将它们放在/wp-content/uploads/sites/number中,然后直接链接到它们的URL。不再需要文件的重写规则。