Вопрос или проблема
Я положил папку в публичный веб-каталог моей установки WordPress, где у меня есть несколько изображений, используемых устаревшей системой.
Допустим, она находится по адресу http://example.com/legacy-images/image1.png
.
Я изменил права на эту папку на 0444
, так что она должна быть доступна для чтения.
По какой-то причине я не могу получить доступ к изображениям в этой папке. По какой-то причине она возвращает 404
.
Есть идеи, как это решить?
Для директории (папки) одного чтения
недостаточно. Вам нужно установить также выполнение
, потому что для директории выполнение
означает, что вы можете войти в директорию.
Файлам нужны права чтения
& директории нужны права чтения
& выполнения
.
Таким образом, права директории должны быть: 0555
. Однако файлы изображения внутри этой директории должны иметь только чтение
, в числовом формате: 0444
.
Например, в вашем случае папка /legacy-images/
будет иметь права 0555
& файл изображения /legacy-images/image1.png
будет иметь права 0444
.
Команда оболочки
Если вы можете получить доступ к оболочке и знаете как, вы можете использовать следующие команды оболочки (замените <WP_DIRECTORY>
на соответствующий каталог установки WordPress):
cd <WP_DIRECTORY>
chmod 555 legacy-images/
cd legacy-images/
find ./ -type f -exec chmod 444 {} \;
Ответ или решение
Для успешного доступа к изображениям, размещённым в папке public web directory вашего WordPress-сайта, необходимо учитывать настройки прав доступа как для самой папки, так и для содержащихся в ней файлов. В вашем случае вы уверенно указали, что папка находится по следующему адресу: http://example.com/legacy-images/image1.png
.
Проблема: Отказ доступа из-за неверных прав
Хотя вы изменили права доступа к папке на 0444
, это значение не позволяет зайти в директорию, так как оно не включает права на исполнение (execute). В контексте UNIX-подобных систем для директории права "чтения" (read) недостаточно. Для доступа к содержимому директории необходимо также разрешение на "исполнение" (execute), которое позволяет системе "входить" в директорию.
Рекомендации по правам доступа
-
Права для директории:
- Установите права на директорию
legacy-images
как0555
. Это обеспечит возможность чтения и исполнения, что необходимо для доступа к содержимому директории.
- Установите права на директорию
-
Права для файлов:
- Для изображений, находящихся в папке, сохраняйте права доступа на уровне
0444
. Это разрешает только чтение файлов, что подходит для вашей задачи.
- Для изображений, находящихся в папке, сохраняйте права доступа на уровне
Применение командной строки
Для изменения прав доступа через командную строку, следуйте приведенным ниже шагам. Убедитесь, что вы заменили <WP_DIRECTORY>
на путь к вашему установочному каталогу WordPress.
cd <WP_DIRECTORY>
chmod 555 legacy-images/
cd legacy-images/
find ./ -type f -exec chmod 444 {} \;
Объяснение команд
cd <WP_DIRECTORY>
— переход в директорию с установленным WordPress.chmod 555 legacy-images/
— изменение прав доступа к папкеlegacy-images
, позволяя входить и читать её содержимое.cd legacy-images/
— переход внутрь папкиlegacy-images
.find ./ -type f -exec chmod 444 {} \;
— эта команда находит все файлы в папке и меняет их права доступа на0444
.
Возможные дополнительные причины ошибки 404
-
Правила .htaccess: Проверьте файл
.htaccess
, который может содержать правила, запрещающие доступ к определённым директориям. Убедитесь, что нет ограничений для выгрузки изображений. -
Проблемы с кэшированием: Если на вашем сайте используется система кэширования, попробуйте очистить кэш, чтобы убедиться, что изменения вступили в силу.
-
Права на уровне сервера: В некоторых случаях серверные настройки или политика безопасности могут блокировать доступ к определенным папкам. Проверьте настройки веб-сервера.
-
Путь к файлу: Убедитесь, что пути к файлам указаны верно. Опечатки могут приводить к ошибке 404.
Следуя вышеуказанным рекомендациям, вы сможете устранить проблему доступа к вашей папке изображений и избежать ошибок 404.