Скрыть каталог, в котором размещены css, js, папка с изображениями

#.htaccess #security

Вопрос:

Я хочу обезопасить и скрыть свою папку с активами от огласки. Я слышал, что это можно сделать с .htaccess файлом и изменить имя с моего directory-name на случайное имя каталога, и в этом случае пользователи не смогут узнать настоящее имя моего каталога, помещенного в мой public_html. Может ли кто-нибудь помочь мне с примерами всех видов документации? Я ничего не пробовал, потому что у меня действительно плохие знания в области .htaccess программирования. Любая помощь будет благодарна.

Ответ №1:

Ну, вы можете это сделать, но мне любопытно, какова цель, если это просто для того, чтобы случайно «скрыть» базовый каталог файлов? Это на самом деле не обеспечивает никакой дополнительной «безопасности», а также может вызвать проблемы, если у вас есть внешний прокси-сервер, предназначенный для обслуживания статического контента. Это также может быть проблематично, если вы используете CMS, такую как WordPress, поскольку вам может потребоваться изменить поведение по умолчанию. (Хотя могут быть и другие проблемы развития, для решения которых вы бы предпочли это сделать.)

В идеале вы бы сделали что-то подобное с Alias директивой в конфигурации основного сервера (или контейнере vHost).

В .htaccess вы можете внутренне переписать запрос, используя mod_rewrite. Допустим, вы ссылаетесь /assets на URL-адрес, но фактический каталог файловой системы, к которому он должен быть привязан, — это /secret то, что вы могли бы сделать следующее, чтобы просто переслать все запросы /secret :

 RewriteEngine on

RewriteRule ^assets/(. ) secret/$1 [L]
 

/assets/<something> Будут перенаправляться только запросы на. Запрос /assets или /assets/ просто приведет к 404 (при условии, что этот каталог на самом деле не существует).

Чтобы быть более избирательным и направлять запросы только на определенные типы файлов в зависимости от расширения файла, вы можете сделать что-то вроде следующего:

 RewriteRule ^assets/(. .(?:jpg|webp|gif|css|js))$ secret/$1 [L]
 

Вы также можете проверить, существует ли целевой файл на самом деле, перед перезаписью, но в этом, как правило, нет необходимости, и этого лучше избегать, поскольку проверка файловой системы обходится относительно дорого.

Комментарии:

1. Это мне очень помогло. Большое спасибо, друг.