多站点网络媒体上传部分显示

时间:2019-04-17 12:33:25

标签: wordpress .htaccess dns alias multisite

我有一个子域多站点安装multisite.domain.com,其中的不同站点位于multisite.domain.com/sitename等。

媒体上载在位于multisite.domain.com(指向上载文件夹的文件)的主站点上正常运行,但在子站点上(指向/ files /而不是/ uploads /)上却不能正常工作。

图像还正确显示在一个以别名www.livesite.com直播到域的子站点(multisite.domain.com/livesite)(上传直接指向livesite.com/files/2019/03) /img.jpg等),这很奇怪,因为同一个目录无法在尚不存在的其他子站点上运行。

我的htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
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]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [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]
</IfModule>

# END WordPress

我的Wp-config多站点配置:

define('SUNRISE', true);

/* Multisite */
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'multisite.domain.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

使用Sunrise插件为网站创建别名。针对此处的htacess尝试了不同的解决方案:codex.wordpress.org/Multisite_Network_Administration,但未按预期工作。

任何建议将不胜感激,因为在线资源没有关于此问题的任何新信息。

1 个答案:

答案 0 :(得分:0)

当前通过在functions.php中使用过滤器进行了修复,但似乎不是最终解决方案:

add_filter( 'upload_dir', 'same_upload_dir' );
function same_upload_dir( array $uploads ) {
    $baseurl = WP_CONTENT_URL . '/uploads/sites/' . get_current_blog_id();
    $basedir = ABSPATH . 'wp-content/uploads/sites/'. get_current_blog_id();
    $subdir = $uploads['subdir'];

    return array(
        'path'    => $basedir . $subdir,
        'url'     => $baseurl . $subdir,
        'subdir'  => $subdir,
        'basedir' => $basedir,
        'baseurl' => $baseurl,
        'error'   => false,
    );
}