我正在尝试在安装目录之外定义wordpress upload文件夹。我的目录结构是:
/path/to/my/base/folder
|-> wordpress (the wordpress installation)
|-> uploads (the required upload folder)
我尝试在wp-config.php中定义'UPLOADS',如:
define('UPLOADS', '../uploads');
Wordpress创建文件夹并将图像上传到那里,但在需要时无法使用它。图片网址如下所示:
www.myhost.dev/../uploads/image-file-name-format.jpg
但是,如果我使用绝对路径来定义'UPLOADS',如
define('UPLOADS', '/path/to/my/base/folder/uploads');
这有效。
但问题是,那么图片网址看起来像是:
www.myhost.dev//path/to/my/base/folder/uploads/image-file-name-format.jpg
这告诉文件的位置,这可能是一个安全问题。
那么,是否有更好的方法来定义上传文件夹的相对路径,它将指向我的必需文件夹?
提前致谢。
答案 0 :(得分:1)
我最后通过制作具有适当权限的符号链接来完成它。在我的例子中,当我尝试创建符号链接时,符号链接没有足够的权限写入文件夹。这是因为我的系统(我正在使用Macbook)。所以我做的是:
$ cd wp-content
$ mv uploads /path/to/my/base/folder/
$ ln -s ../../uploads uploads
$ chmod -h 777 uploads
检查我更改了符号链接权限的最后一行。通常在大多数情况下,您不需要更改符号链接的权限,因为它们继承了文件夹的权限。
答案 1 :(得分:0)
您需要使用类似的路径
define( 'UPLOADS', ''.'uploads' );
答案 2 :(得分:0)
一些可以帮助人们的笔记:
define('UPLOADS','blah')通常与WordPress核心根目录相关。默认值为“ wp-content / uploads”。如果您尝试使用“ ../uploads/”之类的名称将上载内容置于WordPress目录之外,则上载网址通常将无法正常工作,从而导致问题。
如果在wp-config.php中使用define()设置路径,则WordPress将不会读取upload_path设置(如果已使用)。
我发现在WordPress中设置upload_path选项更适合在WordPress安装路径之外存储媒体文件。登录到您的WP管理员,然后转到url /wp-admin/options.php以查看WordPress的“原始”选项列表。
查找upload_path设置。将您的FULL PATH放在/ usr / wpsite / uploads /等服务器上,其中/ usr / wpsite / public_html将是您的WordPress核心安装通常结束的位置。保存设置。
您的上载内容现在将放置在WordPress安装目录之外。确保Web服务器对目录具有读/写权限。
还请注意,WordPress将把所有文件放在该目录中。不会将它们分成年/月子文件夹,这是典型WordPress安装的默认子文件夹。如果有人知道如何保留该功能,请发表评论。