Redirection conditionnelle par .htaccess selon User-Agent

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics


Kerouac
Nouveau WRInaute
 
Messages: 26
Inscription: Mar Avr 24, 2007 15:11

Redirection conditionnelle par .htaccess selon User-Agent

Message le Mar Avr 24, 2007 15:38

Bonjour,

J'essaie de faire une redirection par .htaccess en fonction du User-agent, mais j'y arrive pas.

J'ai un domaine sur lequel j'ai installé un annuaire dans un répertoire :

www.example.com/annuaire/

pour l'instant dans le .htaccess, toutes les demandes pour example.com et www.example.com sont redirigées vers www.example.com/annuaire/ avec cette règle :

Code: Tout sélectionner
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) http://www.%{HTTP_HOST}/annuaire/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www\.
RewriteRule (.*) http://%{HTTP_HOST}/annuaire/$1 [R=301,L]


Le problème est que je veux installer un blog à la racine du site et j'ai donc besoin d'accèder à www.example.com, www.example.com/wp-admin/ etc... sans être redirigé vers le dossier /annuaire/ le temps de le configurer et d'écrire quelques billets.

Mais les visiteurs doivent eux être redirigés pendant que je finis de faire ce que j'ai à faire avec le blog.

Je pensais utiliser un faux User-agent pour me connecter (ex: ZZZZZZ) et l'exclure de la règle de redirection avec une condition utilisant :

Code: Tout sélectionner
RewriteCond %{HTTP_USER_AGENT} ZZZZZZ


Mais je n'ai pas réussi et je ne vois pas comment faire.

Vous auriez pas une idée, soit pour la rédaction de l'exclusion dans le .htaccess soit une autre option qui me permette d'accéder au blog pendant que les visiteurs continuent d'être redirigés vers l'annuaire ?

Merci d'avance


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3334
Inscription: Mar Nov 16, 2004 18:27

Message le Mer Avr 25, 2007 8:18

Reconduit les pages qui utilisent IE vers -http://www.tonsite

Code: Tout sélectionner
RewriteCond %{HTTP_USER_AGENT} MSIE
RewriteRule .* http://www.tonsite [L]


Donc si tu met ZZZZ, ca va rien retourner. Ta commande n'impretera rien du tout. Par contre avec le REFERER tu peux envisager une solution. Fait un lien que toi seul peut identifier avec le REFERER et redirige.


Kerouac
Nouveau WRInaute
 
Messages: 26
Inscription: Mar Avr 24, 2007 15:11

Message le Jeu Avr 26, 2007 0:43

J'arrivais pas à faire une règle conditionnelle sur le REFERER tout en gardant valide mes redirections www non-www.

Mais c'est bon, j ai réussi avec le User-Agent, j'ai mis ça:

Code: Tout sélectionner
Options +FollowSymlinks

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} !ZZZZZZ
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) http://www.%{HTTP_HOST}/annuaire/$1 [R=301,L]

RewriteCond %{HTTP_USER_AGENT} !ZZZZZZ
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule (.*) http://%{HTTP_HOST}/annuaire/$1 [R=301,L]


et avec firefox j'envoyais ZZZZZ comme User agent, ca marchait. (c'été tout bete :D )

Mais merci quand même pour ta réponse KOogar :)


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3334
Inscription: Mar Nov 16, 2004 18:27

Message le Jeu Avr 26, 2007 0:56

Super :D

mais a quoi ca sert ca ??
RewriteCond %{HTTP_USER_AGENT} !ZZZZZZ
ca dit: si le navigateur est different de ZZZZZ

Il l'est forcement different, donc je ne vois pas a quoi cela est utile.
Si tu l'enleves ca ne marche plus ?

^^


Kerouac
Nouveau WRInaute
 
Messages: 26
Inscription: Mar Avr 24, 2007 15:11

Message le Jeu Avr 26, 2007 20:22

KOogar a écrit:mais a quoi ca sert ca ??
RewriteCond %{HTTP_USER_AGENT} !ZZZZZZ
ca dit: si le navigateur est different de ZZZZZ

Il l'est forcement different, donc je ne vois pas a quoi cela est utile.
Si tu l'enleves ca ne marche plus ?


Ah ouais, ben j'ai du mal m'expliquer dans mon premier message :D, parce que c'est ca que je voulais faire.

Je voulais échapper à la redirection pour pouvoir accéder à la racine et configurer le blog. Les visteurs devaient eux etre redirigés vers /annuaire/.

donc la règle que j'ai mis plus haut elle dit :

Tout les user-agent (robots, navigateurs...) sont redirigés vers /annuaire/ , sauf les user-agent ZZZZZ (moi quoi, je pense pas qu'y en ait beaucoup d'autres :) )

(j'utilisais une extension firefox pour envoyer un faux user-agent)

Mais c'est tordu les .htaccess je trouve, alors si t'as la régle d'écriture pour une redirection conditionnelle du même genre mais sur le REFERER, j'en veux bien :)


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3334
Inscription: Mar Nov 16, 2004 18:27

Message le Ven Avr 27, 2007 8:13

Par curiosité, comment fait tu pour declarer ton navigateur comme ZZZZ ?

pour le REFERER ca donnera un code dans ce style:

Code: Tout sélectionner
RewriteCond %{HTTP_REFERER} ^http://www.tonsite.com/ta_page_speciale.php


ta_page_speciale.php contient juste un lien. ta juste a le glisser dans une de tes admins securisés. Comme ca, si tu te trouve sur un autre PC, ton code marche encore, c'est plus cool.


Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Feed Fetcher

  • Tester la validité d'un lien
    Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs).
  • Logiciel d'analyse du positionnement
    AgentWebRanking est un logiciel professionnel qui permet d'analyser le positionnement d'un ou plusieurs sites dans plus de 300 moteurs de recherche dans le monde. Vous pouvez ainsi analyser les performances du référencement pour de nombreux mots-clés.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité