我已将现有站点转换为具有子域的多站点。有几个问题需要解决,但现在运行良好,只有一个例外:
主站点的图像正在上传,但子域的图像没有上传。例如,应放置在以下位置的图像:
/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将文件移动到正确的位置时,图像会在媒体库中按原样显示。
最合适的回答,由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。不再需要文件的重写规则。