Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/03/2016, à 10:10

nam1962

[Résolu] Redirection sous- domaine - sous-répertoire incomplète

Hello, je me trouve devant un cas que je ne pige pas !

Pour rediriger un sous domaine en sous répertoire, j'ai écris ceci dans le .htaccess du domaine :

RewriteCond %{HTTP_HOST} ^blog\.mon\-domaine\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.blog\.mon\-domaine\.com$
RewriteRule ^/?$ "https\:\/\/mon\-domaine\.com\/blog" [R=301,L]

et rien dans le .htaccess du blog.

Si je tapes

blog.mon-domaine

dans la barre d'adresses, je suis bien redirigé vers

https://mon-demaine.com/blog

Mais si cherche un article

blog.mon-domaine/super_article

je tombe sur une 404 alors que

https://mon-demaine.com/blog/super_article

existe bien

Bref, mon .htaccess s'occupe bien de la redirection de domaine, mais ne descend pas plus bas.
Où ai-je faux ?


Question subsidiaire : quelle est la syntaxe la plus correcte entre ces 4 versions ?

RewriteRule ^(.*)$ https\:\/\/mon\-domaine\.com\/blog/$1 [R=301,L]
RewriteRule ^(.*)$ https\:\/\/mon\-domaine\.com\/blog [R=301,L]
RewriteRule ^(.*)$ https://mon-domaine.com/blog/$1 [R=301,L]
RewriteRule ^(.*)$ http://mon\-domaine\.com/blog/$1 [R=301,L]

Dernière modification par nam1962 (Le 02/03/2016, à 15:51)


[ Modéré ]

Hors ligne

#2 Le 01/03/2016, à 14:46

bruno

Re : [Résolu] Redirection sous- domaine - sous-répertoire incomplète

Bonjour,

J'aurais écrit :

RewriteCond %{HTTP_HOST} ^(www\.)blog.mon-domaine.com$
RewriteRule (.*) https://mon-domaine.com/blog/$1 [QSA,R=301,L]

Hors ligne

#3 Le 01/03/2016, à 14:55

nam1962

Re : [Résolu] Redirection sous- domaine - sous-répertoire incomplète

Merci !
Deux questions pour piger  :
- les antislash sont ils toujours de rigueur pour l'universalité ?
- QSA c'est quoi ?

Dernière modification par nam1962 (Le 01/03/2016, à 14:56)


[ Modéré ]

Hors ligne

#4 Le 01/03/2016, à 15:41

bruno

Re : [Résolu] Redirection sous- domaine - sous-répertoire incomplète

Les antislashs sont utiles pour « échapper » les caractères qui ont un sens particulier dans une expression rationnelle. Il sont a priori inutiles en dehors de l'expression rationnelle.

QSA = Query String Append (voir la doc apache sur les drapeaux de réécriture), c'est une précaution au cas où tu as des URL du type :
http://truc.com/blog/truc.php?var=toto&var2=tata

NB : je n'ai pas testé la syntaxe proposée, je ne sais donc pas si elle fonctionne comme tu veux wink

Hors ligne

#5 Le 01/03/2016, à 17:59

nam1962

Re : [Résolu] Redirection sous- domaine - sous-répertoire incomplète

Merci !
... j'ai testé, ça me donne la même chose que ma syntaxe compliquée !

Si je tapes :

blog.mon-domaine

dans la barre d'adresses, je suis bien redirigé vers

https://mon-demaine.com/blog

Mais si cherche un article

blog.mon-domaine/super_article

je tombe sur une 404 alors que

https://mon-demaine.com/blog/super_article

existe bien


[ Modéré ]

Hors ligne

#6 Le 02/03/2016, à 10:38

bruno

Re : [Résolu] Redirection sous- domaine - sous-répertoire incomplète

Pardon le www doit être optionnel dans la condition :

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

J'ai testé cette fois et cela fonctionne chez moi.

Hors ligne

#7 Le 02/03/2016, à 11:10

nam1962

Re : [Résolu] Redirection sous- domaine - sous-répertoire incomplète

Arghhh, j'ai toujours la 404 sur les articles.
Bon, j'amende le .htaccess de mon-domaine.com, pense tu que je doive amender celui de mon-domaine.com/blog ? (blog.mon-domaine.com n'existe plus en soi..)


[ Modéré ]

Hors ligne

#8 Le 02/03/2016, à 14:17

LeoMajor

Re : [Résolu] Redirection sous- domaine - sous-répertoire incomplète

la condition est, je pense,

awk '/^(www.)?blog.domaine.com(\/?|\/([a-z_]+)?)$/' /tmp/test
blog.domaine.com/super_article
www.blog.domaine.com
blog.domaine.com

en moins restrictif sur "super_article"
awk '/^(www.)?blog.domaine.com(\/?|\/(.*)?)$/' /tmp/test

la règle, plutôt %1 ou %2 si tu veux rappeler ce qu'il y entre () dans la condition
pas testée

https://mon-domaine.com/blog/%1      (https://mon-demaine.com/blog/super_article)
https://mon-domaine.com/blog/%2

Hors ligne

#9 Le 02/03/2016, à 15:50

nam1962

Re : [Résolu] Redirection sous- domaine - sous-répertoire incomplète

Ahhh ! oups !
Bon, c'est bien en entête du .htaccess du sous répertoire qu'il faut entrer la redirection !!!
Donc en mettant

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?blog.mon-domaine.com$
RewriteRule (.*) https://mon-domaine.com/blog/$1 [QSA,R=301,L]

dans le .htaccess de mon-domaine.com/blog ça fonctionne !
Je mettais ça dans le .htaccess de mon-domaine.com !


[ Modéré ]

Hors ligne