#1 Le 01/03/2016, à 09: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, à 14:51)
[ Modéré ]
Hors ligne
#2 Le 01/03/2016, à 13: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]
#3 Le 01/03/2016, à 13: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, à 13:56)
[ Modéré ]
Hors ligne
#4 Le 01/03/2016, à 14: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
#5 Le 01/03/2016, à 16: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, à 09: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.
#7 Le 02/03/2016, à 10: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, à 13: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, à 14: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