Я искал ответ на этот вопрос в 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}
Может ли кто-нибудь помочь мне с этим условия?
Будем признательны за любую помощь.