Я просмотрел Google и StackOverflow для ответа на этот вопрос, но тот факт, что я мало что знаю о .htaccess, не помогает мне решить, какие правильные ответы для моей ситуации есть, поэтому я прошу здесь.
Моя ситуация в том, что у меня есть несколько сайтов, которые используют тот же физический каталог, что и их корень на сервере.
Все работает нормально, но я хотел убедиться, что каждый сайт не может получить доступ к изображениям других пользователей и т.д. из браузера, если они не находятся в правильном домене.
В настоящее время у меня есть такая файловая структура, как это:
/resources/{resource}/{full_domain_name}
Итак, например, www.domain.co.uk
будет иметь такую структуру:
http://www.domain.co.uk/resources/images/www.domain.co.uk/some_image.jpg
Но если www.domain_2.co.uk
существует, используя один и тот же физический каталог для корня сайта, тогда они могут просматривать другие ресурсы домена из своего собственного домена, например:
http://www.domain_2.co.uk/resources/images/www.domain.co.uk/some_image.jpg
Это не является серьезной проблемой, поскольку в этих каталогах нет никакой конфиденциальной информации, но это скорее раздражение, и я бы предпочел, чтобы пользователи не смогли это сделать (не то, что у кого-то на самом деле до сих пор).
Я попытался поместить файл .htaccess в каталог /resources, но я застрял с регулярными выражениями и т.д.
Я в основном хочу убедиться, что URI содержит текущее имя домена, иначе перенаправляется на страницу ошибки 403.
Вот что я придумал:
RewriteCond %{REQUEST_URI} !^(/resources/[^/]*/%{HTTP_HOST})(.*)$
RewriteRule ^(.*)$ /error/403.php
Причина, по которой я вставил бит [^/]
, состоит в том, что существует несколько папок, например:
/resources/images/{full_domain_name}
/resources/scripts/{full_domain_name}
/resources/stylesheets/{full_domain_name}
Может ли кто-нибудь помочь мне с этими условиями?
Любая помощь будет оценена.