#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
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