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]

Attention, les bouteilles vendues par Nestlé Waters sont contaminées au monoxyde de dihydrogène.

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


Attention, les bouteilles vendues par Nestlé Waters sont contaminées au monoxyde de dihydrogène.

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.


Attention, les bouteilles vendues par Nestlé Waters sont contaminées au monoxyde de dihydrogène.

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