|
|
|
|
||||||
| fr.comp.info.serveurs Administration de serveurs WWW. |
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Bonjour,
Je souhaiterais délivrer une page particulière quand un internaute provient d'un site particulier. Je cherche à faire ça avec un .htaccess mais impossible de m'en sortir, soit on voit la page normale, soit tout le monde est redirigé. Est-ce que c'est bien possible avec un .htaccess ou dois-je me diriger vers une autre solution ? seb |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Le Tue, 02 Aug 2005 08:53:41 +0200, seb a écrit :
> Je souhaiterais délivrer une page particulière quand un internaute provient > d'un site particulier. Vous avez conscience que 1) certaines personnes ne pourront y accéder (filtrage par un proxy de l'en-tête Referer) 2) que ceux qui voudront vraiment y accéder pourront contourner aisément cette ``restriction'' ? > Je cherche à faire ça avec un .htaccess mais impossible de m'en sortir, soit > on voit la page normale, soit tout le monde est redirigé. > > Est-ce que c'est bien possible avec un .htaccess ou dois-je me diriger vers > une autre solution ? Vous pouvez le faire dans un .htaccess, avec mod_rewrite qui doit donc être activé. Voir le paragraphe ``Blocked Inline-Images'' du guide: http://httpd.apache.org/docs/1.3/misc/rewriteguide.html Vous pouvez le faire aussi avec les variables d'environnement, voir un exemple sur http://willy.boerland.com/myblog/node/6625 -- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news> |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
"Patrick Mevzek" <pm-N200508@nospam.dotandco.com> a écrit dans le message de
news: pan.2005.08.02.12.15.46.814005@nospam.dotandco.com... > Le Tue, 02 Aug 2005 08:53:41 +0200, seb a écrit : >> Je souhaiterais délivrer une page particulière quand un internaute >> provient >> d'un site particulier. > > Vous avez conscience que > 1) certaines personnes ne pourront y accéder (filtrage par un proxy de > l'en-tête Referer) > 2) que ceux qui voudront vraiment y accéder pourront contourner aisément > cette ``restriction'' ? oui, oui, ce n'est pas très grave > Vous pouvez le faire dans un .htaccess, avec mod_rewrite qui doit donc > être activé. > Voir le paragraphe ``Blocked Inline-Images'' du guide: > http://httpd.apache.org/docs/1.3/misc/rewriteguide.html > > Vous pouvez le faire aussi avec les variables d'environnement, voir un > exemple sur > http://willy.boerland.com/myblog/node/6625 Merci ! Après bien des essais j'ai enfin réussi à obtenir ce que je souhaitais. RewriteEngine on RewriteCond %{HTTP_REFERER} ^http://www.monsite.com/.* [NC] RewriteRule \.*$ index_bis.html [L] Maintenant, ça marche pour un site. Je suppose que pour appliquer celà à l'ensemble du serveur je peux le mettre directement dans le httpd.conf. Comment le mettre dans httpd.conf ? En l'état ? dans des <directory> ? <location> ? qu'est qui est le mieux ? Autre chose, là je redirige l'internaute vers une page située à la racine de mon site, comment faire, pour que la redirection se fasse vers une même page sur l'ensemble du serveur (sans mettre de http:// qui me met un vilain code 302) ? Désolé si ces questions vous paraissent un peu obscures. Je débute, lis une tonne de doc et mélange probablement un peu tout... seb |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
Le Tue, 02 Aug 2005 17:43:06 +0200, seb a écrit :
> Après bien des essais j'ai enfin réussi à obtenir ce que je souhaitais. > > RewriteEngine on > RewriteCond %{HTTP_REFERER} ^http://www.monsite.com/.* [NC] (le .* n'est pas nécessaire à la fin, il est implicite, par contre il vous manque un ! non ?, pour faire la négation) > RewriteRule \.*$ index_bis.html [L] Comme pattern, un . devrait suffire, ce qui va tout matcher. > Maintenant, ça marche pour un site. Je suppose que pour appliquer celà à > l'ensemble du serveur je peux le mettre directement dans le httpd.conf. Oui. > Comment le mettre dans httpd.conf ? En l'état ? dans des <directory> ? > <location> ? qu'est qui est le mieux ? Ces directives peuvent apparaître dans tous les contextes. Reste donc à déterminer le plus pertinent. Les deux règles que je donne pour le choix: 1) avoir le moins de contextes différents dans ses fichiers de configuration (pour éviter de s'y perdre) 2) choisir le contexte le plus spécifique par rapport au besoin (pour éviter que ce qu'on fait soit écrasé par un contexte plus spécifique) Si vous voulez appliquer vos règles à tout un site, le mieux est de les mettre donc dans un contexte VirtualHost. Sinon, un contexte directory, soit avec Directory, soit avec Location. Pour les paramétrages liés à la ``sécurité'', Directory est a priori moins dangereux que Location. > Autre chose, là je redirige l'internaute vers une page située à la > racine de mon site, comment faire, pour que la redirection se fasse vers > une même page sur l'ensemble du serveur (sans mettre de http:// qui me > met un vilain code 302) ? [pourquoi c'est vilain le 302 ?] Vous pouvez faire une redirection interne, avec un truc de ce style dans le httpd.conf : RewriteRule . /index_bis.html [L] Par contre, d'après la doc, dans votre cas de figure (en .htaccess) vous ne devriez pas avoir de redirection HTTP par défaut, car elle ne survient qu'avec le flag R ou la présence d'une URL complète (http://....) > Désolé si ces questions vous paraissent un peu obscures. Je débute, > lis une tonne de doc et mélange probablement un peu tout... seb Les forums sont là pour aider :-) -- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news> |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Le Tue, 02 Aug 2005 17:57:42 +0200, Patrick Mevzek a écrit :
>> Après bien des essais j'ai enfin réussi à obtenir ce que je souhaitais. >> >> RewriteEngine on >> RewriteCond %{HTTP_REFERER} ^http://www.monsite.com/.* [NC] > > (le .* n'est pas nécessaire à la fin, il est implicite, par contre il > vous manque un ! non ?, pour faire la négation) J'ai dit une connerie pour le !, pardon, je pensais que vous étiez dans la problématique d'interdire l'accès aux images de l'extérieur du site, alors qu'au contraire vous voulez aiguiller sur une page selon qu'on provient d'un autre site ou non. Donc il est normal que vous n'ayez pas le ! -- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news> |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
"Patrick Mevzek" <pm-N200508@nospam.dotandco.com> a écrit dans le message de
news: pan.2005.08.02.15.57.41.98881@nospam.dotandco.com... > Si vous voulez appliquer vos règles à tout un site, le mieux est de les > mettre donc dans un contexte VirtualHost. > Sinon, un contexte directory, soit avec Directory, soit avec Location. En fait, je souhaiterais appliquer ces règles à tout les sites du serveur (il héberge une multitude de petits sites). > Vous pouvez faire une redirection interne, avec un truc de ce style dans > le httpd.conf : > RewriteRule . /index_bis.html [L] Seulement là, si je ne m'abuse, il faudra une page index_bis.html par site hébergé sur le serveur... et tant qu'à faire, je préfèrerais n'en avoir qu'une seule. Est-ce possible ? > Par contre, d'après la doc, dans votre cas de figure (en .htaccess) vous > ne devriez pas avoir de redirection HTTP par défaut, car elle ne survient > qu'avec le flag R ou la présence d'une URL complète (http://....) Oui c'est celà, je me suis mal exprimé, je ne veux pas avoir de redirection (d'où le qualificatif pour le 302) merci encore, seb |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
Le Tue, 02 Aug 2005 18:57:51 +0200, seb a écrit :
>> Si vous voulez appliquer vos règles à tout un site, le mieux est de les >> mettre donc dans un contexte VirtualHost. >> Sinon, un contexte directory, soit avec Directory, soit avec Location. > > En fait, je souhaiterais appliquer ces règles à tout les sites du serveur > (il héberge une multitude de petits sites). Alors, il faut remonter au cran plus haut, tout en haut en fait, donc ``server config'', ie en dehors de tout bloc. >> Vous pouvez faire une redirection interne, avec un truc de ce style >> dans le httpd.conf : >> RewriteRule . /index_bis.html [L] > > Seulement là, si je ne m'abuse, il faudra une page index_bis.html par > site hébergé sur le serveur... et tant qu'à faire, je préfèrerais > n'en avoir qu'une seule. Est-ce possible ? Oui... en faisant une redirection (donc une seule et même URL à droite). Sinon, utiliser Alias ou équivalent pour créer un nom qui existera dans chaque virtualhost mais qui correspond toujours au même fichier. Personnellement, je trouve une redirection plus claire... >> Par contre, d'après la doc, dans votre cas de figure (en .htaccess) >> vous ne devriez pas avoir de redirection HTTP par défaut, car elle ne >> survient qu'avec le flag R ou la présence d'une URL complète >> (http://....) > > Oui c'est celà, je me suis mal exprimé, je ne veux pas avoir de > redirection (d'où le qualificatif pour le 302) ... et je ne comprends pas ce que vous leur reprochez. -- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news> |
|
![]() |
| Outils de la discussion | |
|
|