图像无法在WordPress网络的子目录安装上工作

时间:2013-04-17 12:42:45

标签: wordpress .htaccess mod-rewrite redirect

我正在尝试安装WordPress网站。自2008年以来已经运行的主站点(位于根目录中)。除了上传的文件外,一切都很好。自从我的主站点启动以来,我已将上传文件夹更改为/assets/。所有图像在主站点上工作但子文件夹站点的图像不起作用。例如,主站点的图像URL

www.mysite.com/assets/2013/04/someimage.jpg

这是完美的。但子文件夹网站的图像路径显示

www.mysite.com/test/assets/sites/1/2013/04/someimage.jpg

如果我从URL中删除子站点的名称(在这种情况下它是'test')它可以工作。这意味着图像已上传到

www.mysite.com/assests/sites/1/someimage.jpg (without sub folder site's name).

我可以通过FTP看到相同的内容。但WordPress使用子站点的名称呈现URL。我认为.htaccess重定向应该有一些错误。

以下是我的.htaccess文件的内容:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# uploaded files
#RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [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).*) $1 [L]
RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
</IfModule>
# END WordPress

该网站托管在Godaddy上进行测试。所有测试后,实际站点将在专用服务器上运行。

1 个答案:

答案 0 :(得分:0)

真实文件低于/assets/sites/。要从请求中删除站点的名称,您必须捕获后一部分并重写为

RewriteRule ^.*?/(assets/sites/.*)$ /$1 [L]

<强>更新

如果文件由wp-includes/ms-files.php提供,则必须类似于

RewriteRule ^.*?/(assets/sites/.*)$ wp-includes/ms-files.php?file=$1 [L]