Redirection

Redirection - PHP - Programmation

Marsh Posté le 05-09-2012 à 15:52:24    

Bonjour,
 
Je cherche un code (en php ou html) pour faire une redirection si les utilisateur de mon site vienne de http://monsite.com qu'il soit redirigé vers http://www.monsite.com
 
Est-ce que cela est possible ? Si non y'a t'il un moyen de le faire via IIS ?

Reply

Marsh Posté le 05-09-2012 à 15:52:24   

Reply

Marsh Posté le 05-09-2012 à 16:09:07    

En PHP
 
header("location: http://www.monsite.com" );
 
A placer en 1ère ligne de ton index.php de http://monsite.com

Reply

Marsh Posté le 05-09-2012 à 20:49:10    

J'obtient ce message
 
Cette page Web présente une boucle de redirection.

Reply

Marsh Posté le 05-09-2012 à 22:55:21    

Je pense que c'est parce que la même page est appelée par les 2 urls, peut être faire un test sur la variable $_path avant d'utiliser header pour s'assurer que l'on est pas en présence de l'url en www.

 

Il y a sans doute mieux mais dans l’immédiat ça peut peut être fonctionner.


Message édité par xaeon le 05-09-2012 à 22:55:59
Reply

Marsh Posté le 07-09-2012 à 16:11:58    

Je ne comprend pas ce que tu dit xaeon

Reply

Marsh Posté le 07-09-2012 à 16:32:00    

ben probablement que ton header(location) est fait sur les 2 urls (celle pour laquelle tu veux la redirection, mais aussi sur celle que tu veux pas). Il faut donc tester l'url d'arrivée de l'utilisateur et ne faire la redirection que s'il vient du site pour lequel tu veux la redirection. Sans doute tester $_SERVER['HTTP_REFERER'].


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 08-09-2012 à 10:46:01    

Pourrait-tu me donner les démarche a suive je ne suis pas très bon codeur.
Merci

Reply

Marsh Posté le 06-11-2012 à 14:14:49    

Bonjour !
 
Pour créer une redirection en PHP, rien de plus simple :
 
La démarche : http://resolu.net/creer-une-redirection-en-php.html
 
A bientôt !

Reply

Marsh Posté le 23-11-2012 à 14:18:32    


Bonjour,  
 
Moi je le fais directement dans mon .htaccess, car cela me permet de laisser ce travail à Apache et de faire une redirection 301 pour ne pas avoir de duplicate content.
Pour cela tu as deux méthodes :
 

  • Option 1:


Code :
  1. <IfModule mod_rewrite.c>
  2.   RewriteCond %{HTTPS} !=on
  3.   RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  4.   RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
  5. </IfModule>


 
 
 

  • Option 2:


Attention avec cette méthode, si tu utilises des sous-domaines, il vaut mieux utiliser la première méthode.
 

Code :
  1. <IfModule mod_rewrite.c>
  2.    RewriteCond %{HTTPS} !=on
  3.    RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
  4.    RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
  5. </IfModule>


Reply

Marsh Posté le 23-11-2012 à 17:59:11    

Il n'y a pas de .htaccess dans IIS c'est bien le problème ...

Reply

Marsh Posté le 23-11-2012 à 17:59:11   

Reply

Marsh Posté le 23-11-2012 à 19:14:06    

Ah j'avais mal lu =/  
 
Du coup dans ton cas, un bout de code à mettre en haut de chacunes de tes pages :

Code :
  1. <?php
  2.    if(!preg_match('/^www./',$_SERVER["HTTP_HOST"]))
  3.    {
  4.         header("HTTP/1.1 301 Moved Permanently" );
  5.         header('Location:http://www.'$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]);
  6.         header("Connection: close" );
  7.    }
  8. ?>


 
Je n'ai pas moyen de la tester là, mais normalement ça devrait être bon :)
N'oublie pas le header 301 pour notre ami google ;)

Reply

Marsh Posté le 24-11-2012 à 14:06:57    

J'obtient 500 - Erreur interne au serveur.

Reply

Marsh Posté le 24-11-2012 à 20:30:03    

Tu crées une page en HTML à la racine de ton site (http://monsite.com) que tu nommes index.html avec ce code :

Code :
  1. <META HTTP-EQUIV="Refresh"
  2. CONTENT="0; URL=http://www.monsite.com">


 
Si j'ai bien compris ce que tu voulais.

Reply

Marsh Posté le 24-11-2012 à 21:34:42    

Dsl alx067... Mais t'es à l'ouest, ta méthode produit une 302 non conditionnée.
 
Le gars il demande comment faire une redirection 301 conditionnée. :D


---------------
Directeur Technique (CTO)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed