2016-06-08 3 views
0

У меня есть 3 домена (внешний интерфейс, бэкенд, активы) размещены на одном сервере со всеми своими активами файлов на определенном каталоге /assets/ указывая на http://assets.mydomain.com/Предотвратить файл и каталог от прямого доступа, но позволяет его из основного домена только

Я хочу запретить прямой доступ к моим файлам и каталогам от пользователей и разрешить доступ ко всем другим доменам к файлам. Я googled он много нашел некоторые решения, используя .htaccess и установить deny all, но это не работает в моем случае coz разных доменов, я думаю.

ответ

1

Есть примеры по этому поводу на Order

В следующем примере все хосты в домене example.org разрешен доступ; всем другим хостам отказано в доступе.

Order Deny,Allow 
Deny from all 
Allow from example.com 

Это исключает все узлы, кроме вашего собственного домена (example.com).

Если у вас есть доступ к основной конфигурации, вы можете также ограничить это к конкретному каталогу с Directory

<Directory /path/to/assets> 
... 
</Directory> 

Если нет, поставить Order, Deny и Allow директивы в файле .htaccess в активах каталог.

+0

В '/ активы /' директории, которая является корнем 'htttp: // активами .mydomain.com/'Я поставил файл .htaccess с ' Запретить заказ, Разрешить Отключить от всех Разрешить из mydomain.com' , но я получаю 403 запрещено для всех моих файлов в нем –

+0

'deny allow' работает, но' allow from' не работает –

+0

Вы пытались получить файл из указанного домена? В моей тестовой среде я попробовал 'curl --interface frontend.example.com assets.example.com', который дает мне запрошенный' index.html'. В то время как с 'curl --interface www.test.com assets.example.com', я получаю 403. –

-1

Это работал для меня

SetEnvIf Referer "^http://yourdomain.com/" letitpass 
Order Deny,Allow 
Deny from all 
Allow from env=letitpass 

я ставлю этот код в .htaccess в корневой директории т.е. /assets/ из http"//assets.yourdomain.com

+0

'Referer' is not для проверки подлинности или контроля доступа. Клиент может подделывать заголовок Referer и получать доступ к вашему контенту. Если это должно защитить конфиденциальные данные, используйте другой метод. –

+0

Поскольку ваш вопрос помечен [hotlinking], этого может быть достаточно. См. Также https://httpd.apache.org/docs/2.4/rewrite/access.html –

+0

@ Олаф, можете ли вы предложить мне что-то более безопасное, я вроде как нуб в этих вещах –