上传项目外的Wordpress文件夹


Upload folder of Wordpress outside the project

我试图在安装目录外定义wordpress上传文件夹。我的目录结构是:

/path/to/my/base/folder 
               |-> wordpress (the wordpress installation)
               |-> uploads (the required upload folder)

我尝试在我的wp-config.php中定义'UPLOADS',如:

define('UPLOADS', '../uploads');

Wordpress创建了文件夹并上传了图像,但在需要时无法使用它。图片URL如下:

www.myhost.dev/../uploads/image-file-name-format.jpg

但是如果我使用绝对路径来定义'UPLOADS',比如

define('UPLOADS', '/path/to/my/base/folder/uploads');

这工作。

但问题是,图像url看起来像:

www.myhost.dev//path/to/my/base/folder/uploads/image-file-name-format.jpg

告诉文件的位置,这可能是一个安全问题。

那么,是否有更好的方法来定义上传文件夹的相对路径,该路径将指向我所需的文件夹?

一些可能对人们有所帮助的注意事项:

define('UPLOADS', 'blah')通常是相对于WordPress核心根目录的。默认为"wp-content/uploads"。如果你想把上传的内容放到WordPress目录之外,比如".."/uploads/'作为上传URL的定义,通常不会产生问题。

如果你在wp-config.php中使用define()设置路径,WordPress将不会读取upload_path设置,如果你使用了它。

我发现在WordPress中设置upload_path选项对于在WordPress安装路径之外存储媒体文件更好。登录到你的WP管理员,进入url/WP - Admin/options.php查看WordPress的"raw"选项列表。

查找upload_path设置。把你在服务器上的完整路径,比如/usr/wpsite/uploads/,其中/usr/wpsite/public_html将是你的WordPress核心安装通常结束的地方。保存设置

你上传的文件现在将被放置在WordPress安装目录的外部。请确保web服务器对该目录具有读/写权限。

还需要注意的是,WordPress将把所有文件放在该目录下。它不会像典型的WordPress安装默认的那样将它们分成年/月子文件夹。如果有人知道如何保留该功能,请评论。

我终于通过适当的权限创建了一个符号链接。在我的情况下,当我试图创建符号链接时,符号链接没有足够的权限写入文件夹。这是因为我的系统(我用的是Macbook)。我所做的是:

$ cd wp-content
$ mv uploads /path/to/my/base/folder/
$ ln -s ../../uploads uploads
$ chmod -h 777 uploads

检查我更改符号链接权限的最后一行。通常在大多数情况下,您不需要更改符号链接的权限,因为它们继承了文件夹的权限。

如果你看一下这个链接http://www.wpbeginner.com/wp-tutorials/how-to-change-the-default-media-upload-location-in-wordpress-3-5/

你需要使用如下路径

define( 'UPLOADS', ''.'uploads' );