[Résolu] Sous domaines dynamiques

WRInaute discret
Bonjour,
J'ai un petit problème sur mon hébergement :
Je suis sur un dédié mais je n'ai pas accès à la config (gérée par une autre personne) j'ai réussi tant bien que mal à contacter cette personne qui a créé une redirection du type *.example.com vers www.example.com
Ce n'est malheureusement pas ce que je voulais mais vu le délai qu'il me faut pour la contacter, je m'en remet à vous :
Comment puis-je faire une redirection du type :
*.example.com* vers www.example.com/un_doc/index.php?id=$1&page=$2
Tout ça via mon htaccess qui sait accéder aux sous-domaines (j'ai testé :
RewriteCond %{HTTP_HOST} !^www.example.com
RewriteRule ^(.*).example.com http://www.example.com/$1 [L,R=301]

sans succès)

Merci beaucoup !
 
WRInaute passionné
Salut,

Je te réponds vite fait donc à prendre au conditionnel

Tu ne peux pas appliquer d'expression régulière sur l'host dans un RewriteRule.

Il faut que tu captures ton sous domaine avec des parenthèses dans un RewriteCond et l'utiliser dans ton RewriteRule avec %1 et pas $1.
 
WRInaute discret
Avec ce que tu m'as dit, j'ai recherché sur le net et j'ai trouvé ceci comme solution :
RewriteCond %{HTTP_HOST} ^([^.]*)\.?([^.]+)\.([^.]+)$ [NC]
RewriteCond %1 !^www$ [NC]
RewriteRule ^(.*)$ /online/index.php?id=%1&page=$1 [L]

Mais ça ne marche pas, j'ai un problème de récursion (donc une boucle infinie je suppose)
Merci pour ton aide ;)
 
WRInaute passionné
Essaie comme ça

Code:
RewriteCond %{HTTP_HOST} !^www.example.com [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.example\.com [NC]
RewriteRule * http://www.example.com/%1 [R=301]
 
WRInaute discret
Hélas...
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Et dans les logs :
[Fri Dec 15 16:23:38 2006] [alert] [client 81.246.248.127] /.../.htaccess: RewriteRule: cannot compile regular expression '*'
[/code]

EDIT : Voila avec :
RewriteCond %{HTTP_HOST} !^www.example.com [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.example\.com [NC]
RewriteRule (.*) http://www.example.com/online/index.php?id=%1 [R]

Ca fonctionne !!

Une dernière question : Puis-je faire une redirection invisible ? Donc je ne voudrais pas qu'on voie l'url absolue mais rester sous l'url avec le sous-domaine etc... ?

EDIT2:
Hop trouvé aussi : remplacer [R] par [P,L] et voilaaa merci en tout cas ;)
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut