Bonjour, j'aimerais savoir comment faire pour :
Quand je vais sur www.monsite.com/page.php OU monsite.com/page.php soit rediriger vers www.monsite.org/page.php OU monsite.org/page.php
?? merci beaucoup :)
Version imprimable
Bonjour, j'aimerais savoir comment faire pour :
Quand je vais sur www.monsite.com/page.php OU monsite.com/page.php soit rediriger vers www.monsite.org/page.php OU monsite.org/page.php
?? merci beaucoup :)
R=301 pour une redirection permanente, R=302 pour une redirection temporaire.Code:
1
2
3 RewriteEngine on RewriteCond %{HTTP_HOST} ^(.*)\.com$ [NC] RewriteRule (.*) http://%1.org/$1 [R=301,QSA]
Rebonjour, j'ai fais une faute de frappe..
Mon site ce trouve dans un répertoire..donc ce serais plutot
www.monsite.com/site/page.php
vers
www.monsite.org/site/page.php
Tu as essayé au moins avec ma conf ? Mets le .htaccess dans le répertoire "site" si tu veux que seul ce répertoire et ses sous-répertoires soient redirigés, ou sinon à la racine du document root si tu veux rediriger l'intégralité de ton site (répertoire "site" + ceux qui se trouvent au même niveau).
Mes fichiers de mon site ce trouve dans /home/.../public_html/
Je met le .htaccess ici avec :
et lorsque je vais surCode:
1
2
3
4 RewriteEngine on RewriteCond %{HTTP_HOST} ^(.*)\.com$ [NC] RewriteRule (.*) http://%1.org/$1 [R=301,QSA]
www.monsite.com/site
il me redirige vers
http://www.monsite.com/site
______________________________________________
Si je met le fichier dans le dossier du site
/home/.../public_html/site
Je suis redirigé vers
http://www.monsite.com//home/.../public_html/page.php
merci
Euh... Quelle est la différence entre les 2 URL que tu donnes ? Tu veux dire que tu n'es pas redirigé ? Y a un .htaccess dans "site" ? Quel est-il ?
Finalement je n'ai rien dis.. j'avais oublier d'enlever un .htaccess.. dsl :P
donc présentement j'ai :
qui permet de rediriger tous les *.com/ vers *.org en https..Code:
1
2
3
4 RewriteEngine on RewriteCond %{HTTP_HOST} ^(.*)\.com$ [NC] RewriteRule (.*) https://%1.org/$1 [R=301,QSA]
J'aimerais rediriger tous les .org vers https alors j'avais penser à :
mais ça ne fonctionne pas..Code:
1
2
3
4 RewriteEngine on RewriteCond %{HTTP_HOST} ^(.*)\.org$ [NC] RewriteRule (.*) https://%1.org/$1 [R=301,QSA]
j'ai aussi essayé avec :
fonctionne pas non plus :(Code:
1
2
3 RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
as tu une suggestion à me proposer ? merci de ton aide
Essaie peut-être avec SERVER_PORT :
ouCode:RewriteCond %{SERVER_PORT} !^443$
mais j'ai peur que ça ne fonctionne pas car logiquement ta vérif sur HTTPS devrait passer. Ca voudrait dire que le serveur Web est derrière un reverse proxy qui fait le HTTPS et qui renvoie en HTTP sur le vrai serveur Web.Code:RewriteCond %{SERVER_PROTOCOL} !https [NC]
Ça fonctionne mais est-ce possible de faire mettre le .org avant qu'il mettre le https ?
car j'ai seulement un certificat ssl pour monsite.org et non monsite.com
A priori oui en mettant dans ton .htaccess les Rewrite dans le bon ordre : d'abord les redirections vers le .org puis le passage en https.
ok j'ai mis ceci dans mon .htaccess
Quand je vais sur http://www.monsite.com il me redirige vers https://www.monsite.com
Et non sur : http://www.monsite.org et ensuite https://www.monsite.org
merciCode:
1
2
3
4
5
6
7 RewriteEngine on RewriteCond %{HTTP_HOST} ^(.*)\.com$ [NC] RewriteRule (.*) https://%1.org/$1 [R=301,QSA] Rewritecond %{SERVER_PORT} !^443$ RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA]
Ajoute un L dans les [] des RewriteRule :
Code:
1
2
3
4
5
6 RewriteEngine on RewriteCond %{HTTP_HOST} ^(.*)\.com$ [NC] RewriteRule (.*) https://%1.org/$1 [R=301,QSA,L] Rewritecond %{SERVER_PORT} !^443$ RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,L]
Parfais ça fonctionne merci !
Une dernière question :P si je veux rediriger www.monsite.com/site/
vers
https://www.monsite.org/site/page.php
Je fais ceci :
Alors pourquoi il me sors ceci :roll:Code:
1
2
3
4
5
6
7
8
9
10 Rewritebase /site RewriteRule ^$ page.php [R=301,QSA,L] RewriteEngine on RewriteCond %{HTTP_HOST} ^(.*)\.com$ [NC] RewriteRule (.*) https://%1.org/$1 [R=301,QSA,L] Rewritecond %{SERVER_PORT} !^443$ RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,L]
https://www.monsite.org/page.php :(
Supprime le RewriteBase car il va avoir un impact sur toutes les règles de ton .htaccess, travaille plutôt avec RewriteRule ^site... :
Et mets les règles dans le bonne ordre : RewriteEngine on en premier même si dans l'absolu ça ne change pas grand chose, on l'a vu, l'ordre des règles est d'une extrême importance.Code:RewriteRule ^site/?$ /site/page.php [R=301,QSA,L]
/home/.../public_html/site/page.php
Parfais ça fonctionne quand je le met dans le dossier /public_html
mais si je désire le mettre dans le dossier /site est-ce possible ?
Dans ce cas, tu retires simplement site/ de tes RewriteRule :
ET SANS REWRITEBASE !!!Code:RewriteRule ^$ page.php [R=301,QSA,L]
bizarre, regarde ce qu'il me fait :
www.monsite.com/site
vers
https://www.monsite.org//home/.../public_html/site
J'ai finalement trouvé la solution merci beaucoup de ton aide !!:king::yaisse2:
Pour info, tu peux nous la donner ?
On dirait que mon code de htaccess marche 1 fois sur 2...
Est-ce que ce serait à cause des "cookies" ou whatever ?
1 fois sur 2 j'obtiens le path /home/.../site/etc.. dans mon url je ne comprend pas j'ai essayer avec et sans RewriteBase comme tu me l'avais ditCode:
1
2
3 RewriteCond %{HTTP_HOST} ^(.*)\.com$ [NC] RewriteRule (.*) https://%1.org/site/$1 [R=301,QSA,L]