URL Rewriting complexe ?

Nouveau WRInaute
Bonjour,

Après bon nombre d'heures de galère, je décide de faire appel à vos compétences et votre amabilité afin de mettre en place le rewriting de mon site.

Explications :

- Dans un premier temps, je souhaiterais rediriger de cette façon :

domain.com ou !(subdomain1|subdomain2|subdomain3).domain.com => www.domain.com

- Ensuite :

(www|subdomain1|subdomain2|subdomain3).domain.com => www.domain.com/index.php?subdomain=$1

- Puis :

(www|subdomain1|subdomain2|subdomain3).domain.com/(.*)/? => www.domain.com/index.php?subdomain=$1&page=$2

- Et ainsi de suite :

(www|subdomain1|subdomain2|subdomain3).domain.com/(.*)/(.*)/? => www.domain.com/index.php?subdomain=$1&page=$2&subpage=$3

J'espère que vous avez compris. Si tel n'est pas le cas, n'hésitez pas à me poser vos questions !

En vous remerciant par avance,

Sylvain.
 
WRInaute accro
Voici le premier:

Code:
RewriteCond %{HTTP_HOST} ^([^\.]+)\.domaine\.com$ [NC]
RewriteRule ^$ /index.php?subdomain=%1 [QSA,L]

meme principe pour les autres
capture dans la condition et envoie la capture dans le rewrite:
subdomain=%1&page=%2
 
Nouveau WRInaute
Bonjour KOogar,

En fait jme suis mal exprimé pour le premier :
j'aimerais que lorsque le visiteur tape dans la barre d'adresse http://domaine.com , il soit redirigé sur http://www.domaine.com de manière visible.

Pour se faire, j'utilise :

Code:
RewriteCond %{HTTP_HOST} ^domaine\.com/? [NC]
RewriteRule (.*) http://www\.domaine\.com/$1 [QSA,R=301,L]

Mais maintenant j'aimerais aussi que ça redirige de manière VISIBLE sur http://www.domaine.com si le visiteur entre un mauvais sous-domaine ( d'où le !(subdomain1|subdomain2|subdomain3) ).

Sinon, est il possible d'utiliser des variables dans le htaccess ? J'aimerais en fait éviter de réperter plusieurs fois subdomain1|subdomain2|subdomain3

Merci : )
 
Nouveau WRInaute
J'ai fait ceci :

Code:
RewriteCond %{HTTP_HOST} ^domain\.com/? [NC,OR]
RewriteCond %{HTTP_HOST} !^(www|subdomain1|subdomain2)\.domain\.com/? [NC]
RewriteRule (.*) http://www\.domain\.com/ [QSA,R=301,L]

RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com/?
RewriteRule ^$ /index.php?subdomain=%1 [L]
RewriteRule ^(.*)(/)?$ /index.php?subdomain=%1&page=$1 [L]
RewriteRule ^(.*)/(.*)(/)?$ /index.php?subdomain=%1&page=$1&subpage=$2 [L]

Mais seul la première partie marche : /
 
WRInaute accro
>> Mais maintenant j'aimerais aussi que ça redirige de manière VISIBLE sur -http://www.domaine.com si le visiteur entre un mauvais sous-domaine ( d'où le !(subdomain1|subdomain2|subdomain3) ).


Code:
ErrorDocument 404 http://www.domaine.com/
 
Nouveau WRInaute
J'en suis arrivé là, mais j'ai encore 2 soucis :

Code:
RewriteCond %{HTTP_HOST} ^domain\.com/? [NC]
RewriteRule (.*) http://www\.domain\.com/index.html [QSA,R=301,L] 

RewriteCond %{HTTP_HOST} ^(subdomain1|subdomain2|subdomain3)\.domain\.com/?$ [NC]
RewriteRule ^$ /index.php?subdomain=%1 [L] 
RewriteRule ^([^.]+)/?$ /index.php?subdomain=%1&page=$1 [L]

- souci n°1 : lorsque que je vais sur l'adresse http://www.domain.com/nimportequoi je tombe sur le index.php

- souci n°2 : lorsque que je vais sur subdomain1.domain.com/mapage/ , $page= mapage/ ( pourquoi le / ? )

merci de m'éclairer
 
WRInaute accro
hum pour le revirement...

Tu peux avoir plusieurs conditions pour 1 regle. Mais tu ne peux pas avoir plusieurs regles pour 1 condition.

Code:
RewriteCond %{HTTP_HOST} ^(subdomain1|subdomain2|subdomain3)\.domain\.com/?$ [NC]
RewriteRule ^$ /index.php?subdomain=%1 [L]

RewriteCond %{HTTP_HOST} ^(subdomain1|subdomain2|subdomain3)\.domain\.com/?$ [NC]
RewriteRule ^([^.]+)/?$ /index.php?subdomain=%1&page=$1 [L]


Le 2 c'est ta capture
donc prend tout sauf le /
__________________ ([^/]*)
 

➡️ 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