【问题标题】:Images not working on sub directory install of WordPress network图像不适用于 WordPress 网络的子目录安装
【发布时间】:2013-04-17 12:42:45
【问题描述】:

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

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

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

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

如果我从 URL 中删除子站点的名称(在本例中为“测试”),它会起作用。这意味着图像已上传到

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 上,共享用于测试。在所有测试之后,实时站点将在专用服务器上运行。

【问题讨论】:

  • 重写规则中的任何地方都没有assetssites。这应该如何工作?

标签: wordpress .htaccess mod-rewrite redirect


【解决方案1】:

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

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

更新

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

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

【讨论】:

  • 我认为它会由 wp-includes/ms-files.php 自动完成,我不确定@Olaf Dietsche 能否请您更改整个代码?
  • @Kanu 我不熟悉 Wordpress 和上传的文件。请查看更新的答案,也许它有效。
  • 抱歉,以上代码无效。 WordPress 仍然在 URL 中使用子站点的名称呈现。有熟悉网络站点的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-23
  • 2014-07-04
  • 1970-01-01
  • 2014-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多