2016-06-08 3 views
0

J'ai 3 domaines (frontend, backend, actifs) hébergé sur serveur unique avec tous mes actifs fichiers sur le répertoire particulier /assets/ pointant vers http://assets.mydomain.com/Prévenir un fichier et répertoire d'un accès direct, mais permettant à partir de votre domaine principal ne

Je veux empêcher les utilisateurs d'accéder directement à mes fichiers et répertoires et autoriser mes autres domaines à accéder aux fichiers. Je ai googlé beaucoup trouvé des solutions en utilisant .htaccess et mis deny all mais cela ne fonctionne pas dans mon cas coz de différents domaines, je suppose.

Répondre

1

Il y a des exemples à ce sujet à Order

Dans l'exemple suivant, tous les hôtes du domaine example.org sont autorisés à accéder; tous les autres hôtes se voient refuser l'accès.

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

Cela exclut tous les hôtes, à l'exception de votre propre domaine (example.com).

Lorsque vous avez accès à la configuration principale, vous pouvez également limiter à un répertoire particulier Directory

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

Dans le cas contraire, mettre les Order, Deny et Allow directives dans un fichier .htaccess dans les actifs annuaire.

+0

Dans le répertoire '/ actif /' qui est la racine de 'htttp: // actifs .mydomain.com/'Je mets un fichier .htaccess avec ' Refuser la commande, Autoriser Refuser de tous Autoriser from mydomain.com' mais je reçois 403 interdit pour tous mes fichiers dedans –

+0

'deny allow' fonctionne, mais' allow from' ne fonctionne pas –

+0

Avez-vous essayé d'obtenir le fichier du domaine spécifié? Dans mon environnement de test, j'ai essayé 'curl --interface frontend.example.com assets.example.com', ce qui me donne le' index.html' demandé. Alors qu'avec «curl --interface www.test.com assets.example.com», je reçois un 403. –

-1

Cela a fonctionné pour moi

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

Je mets ce code dans .htaccess dans le répertoire racine c.-à-/assets/ de http"//assets.yourdomain.com

+0

'Referer 'n'est pas sans danger pour l'authentification ou le contrôle d'accès. Un client peut truquer un en-tête Referer et accéder à votre contenu. Si cela devrait protéger les données sensibles, utilisez une autre technique. –

+0

Puisque votre question est étiquetée [hotlinking], cela pourrait suffire. Voir aussi https://httpd.apache.org/docs/2.4/rewrite/access.html –

+0

@Olaf pouvez-vous me suggérer quelque chose qui est plus sûr, je suis un peu noob dans ces choses –