8
votes

Configurer uniquement permettre des domaines spécifiques d'accéder à certains dossiers en utilisant .htaccess

J'ai un scénario comme suit:

Par exemple, j'ai un site Web http://www.example.com , et j'ai configuré quelques sous-domaines tels que http://video.example.com , http://image1.example.com , http://image2.example.com . Dans le réglage d'hôte virtuel Apache, ils utilisent le même dossier (par exemple / home / exemple / ). (Ces deux domaines ont une configuration de bande passante différente à l'aide de mod_cband).

j'ai un sous-dossier / home / exemple / vidéos , je veux le rendre accessible uniquement à partir du sous-domaine http://video.example.com/files/videos/ mais pas de http://www.example.com/files/videos/ ou d'autres sous-domaines.

Comment dois-je configurer ceci avec un fichier .htacaccess ?


1 commentaires

Vérification du référent est la "solution" la plus courante pour cela - dans des guillemets, car le référent n'est pas fiable.


3 Réponses :


-2
votes
rewritecond %{HTTP_HOST} video.mywebsite.com [s=1]
rewriterule files/videos/.* - [F]

0 commentaires

2
votes

Vous pouvez vérifier l'hôte, puis gérer cela avec mod_rewrite a > Création d'une redirection 301 dans un fichier .htaccess code>; Bien que si vous avez accès, il est bien meilleur si vous le faites dans le httpd.conf code> ou un fichier de configuration inclus à la place.

meilleur scénario strong> p>

Comme il ressemble à mod_cband veut un autre virtualhost Pour chaque domaine, vous configureriez votre httpd.conf code> fichier comme ceci et inclure le fichier Réécrivez les règles dans la configuration elle-même. Certains héberges Web feront cette méthode sur laquelle le site de compte principal est le DocumentOroTroot Code> et les autres sites sont tous imbriqués sous le répertoire ITS: P>

RewriteEngine On
RewriteCond %{HTTP_HOST} !^video.mywebsite.com$
RewriteRule ^(files/videos/.*)$ http://video.mywebsite.com/$1 [R=301,L]

  #Check to make sure if they're on the video domain
  #that they're in the video folder otherwise 301 to www
  RewriteCond %{HTTP_HOST} ^video.mywebsite.com$
  RewriteCond %{REQUEST_URI} !^/files/videos [NC]
  RewriteRule ^.*$ http://www.mywebsite.com/ [R=301,L]


RewriteCond %{HTTP_HOST} !^image1.mywebsite.com$
RewriteRule ^(files/images1/.*)$ http://image1.mywebsite.com/$1 [R=301,L]

  #Check to make sure if they're on the image1 domain
  #that they're in the images1 folder
  RewriteCond %{HTTP_HOST} ^image1.mywebsite.com$
  RewriteCond %{REQUEST_URI} !^/files/images1 [NC]
  RewriteRule ^.*$ http://www.mywebsite.com/ [R=301,L]

RewriteCond %{HTTP_HOST} !^image2.mywebsite.com$
RewriteRule ^(files/images2/.*)$ http://image2.mywebsite.com/$1 [R=301,L]

  #Check to make sure if they're on the image1 domain
  #that they're in the images2 folder
  RewriteCond %{HTTP_HOST} ^image2.mywebsite.com$
  RewriteCond %{REQUEST_URI} !^/files/images2 [NC]
  RewriteRule ^.*$ http://www.mywebsite.com/ [R=301,L]


0 commentaires

14
votes

mettre ce code dans /home/mywebsite/files/videos/.htaccess xxx


0 commentaires