Redirection PHP
Fermé
dagena
Messages postés
230
Date d'inscription
mardi 15 janvier 2008
Statut
Membre
Dernière intervention
17 avril 2015
-
8 sept. 2012 à 00:20
dagena Messages postés 230 Date d'inscription mardi 15 janvier 2008 Statut Membre Dernière intervention 17 avril 2015 - 11 sept. 2012 à 15:18
dagena Messages postés 230 Date d'inscription mardi 15 janvier 2008 Statut Membre Dernière intervention 17 avril 2015 - 11 sept. 2012 à 15:18
6 réponses
epitale
Messages postés
3942
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
27 octobre 2017
915
8 sept. 2012 à 00:26
8 sept. 2012 à 00:26
bonsoir dagena
regarde du coté du fichier .htaccess
--
regarde du coté du fichier .htaccess
--
DenisSP
Messages postés
7
Date d'inscription
mercredi 5 septembre 2012
Statut
Membre
Dernière intervention
13 septembre 2012
Modifié par DenisSP le 8/09/2012 à 11:54
Modifié par DenisSP le 8/09/2012 à 11:54
Si il faut toujours que ca dirige vers www.example.org/login.php alors:
fichier index.php:
Non ?
fichier index.php:
header('Status: 301 Moved Permanently'); header('Location: [http://www. example.org/login.php'; exit;
Non ?
dagena
Messages postés
230
Date d'inscription
mardi 15 janvier 2008
Statut
Membre
Dernière intervention
17 avril 2015
22
8 sept. 2012 à 12:34
8 sept. 2012 à 12:34
déjà merci pour vos réponses
alors voilà si je mets ce code dans mon index.php:
if(isset($_SERVER['HTTP_HOST']))
{
if(strstr($_SERVER['HTTP_HOST'], 'www') == false)
{
header('Status: 301 Moved Permanently');
header("Location: http://www.exemple.fr/login.php");
exit;
}
En tapant exemple.fr je suis bien redirigé sur www.exemple.fr/login.php par contre si je mets le préfixe www.exemple.fr ben la je ne suis pas redirigé.
Merci pour votre aide
alors voilà si je mets ce code dans mon index.php:
if(isset($_SERVER['HTTP_HOST']))
{
if(strstr($_SERVER['HTTP_HOST'], 'www') == false)
{
header('Status: 301 Moved Permanently');
header("Location: http://www.exemple.fr/login.php");
exit;
}
En tapant exemple.fr je suis bien redirigé sur www.exemple.fr/login.php par contre si je mets le préfixe www.exemple.fr ben la je ne suis pas redirigé.
Merci pour votre aide
dagena
Messages postés
230
Date d'inscription
mardi 15 janvier 2008
Statut
Membre
Dernière intervention
17 avril 2015
22
8 sept. 2012 à 12:58
8 sept. 2012 à 12:58
je vous mets mon code php d'origine complet:
<?php
/***************************************************************************
* Copyright (C) 2009-2011 by Geo Varghese(www.seopanel.in) *
* sendtogeo@gmail.com *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
include_once("includes/sp-load.php");
include_once(SP_CTRLPATH."/index.ctrl.php");
include_once(SP_CTRLPATH."/directory.ctrl.php");
$controller = New IndexController();
$controller->view->menu = 'home';
if($_SERVER['REQUEST_METHOD'] == 'GET'){
switch($_GET['sec']){
case "news":
$controller->showNews($_GET);
break;
default:
$controller->index($_GET);
break;
}
}elseif($_SERVER['REQUEST_METHOD'] == 'POST'){
switch($_POST['sec']){
default:
$controller->index($_POST);
break;
}
}
?>
htaccess j'ai essayé mais la redirection ce fait mais la page saute, donc je ne sais pas comment faire.
<?php
/***************************************************************************
* Copyright (C) 2009-2011 by Geo Varghese(www.seopanel.in) *
* sendtogeo@gmail.com *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
include_once("includes/sp-load.php");
include_once(SP_CTRLPATH."/index.ctrl.php");
include_once(SP_CTRLPATH."/directory.ctrl.php");
$controller = New IndexController();
$controller->view->menu = 'home';
if($_SERVER['REQUEST_METHOD'] == 'GET'){
switch($_GET['sec']){
case "news":
$controller->showNews($_GET);
break;
default:
$controller->index($_GET);
break;
}
}elseif($_SERVER['REQUEST_METHOD'] == 'POST'){
switch($_POST['sec']){
default:
$controller->index($_POST);
break;
}
}
?>
htaccess j'ai essayé mais la redirection ce fait mais la page saute, donc je ne sais pas comment faire.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
0x40
Messages postés
65
Date d'inscription
vendredi 7 septembre 2012
Statut
Membre
Dernière intervention
14 septembre 2012
41
8 sept. 2012 à 14:18
8 sept. 2012 à 14:18
Si tu test en local c'est normale le sous domaine www n'existe pas.. >< Sinon ton code fonctionne parfaitement !!!
Il est inutile de vérifier si strstr == false tu peux directement faire comme ceci :
En ce qui me concerne voici mon code de test :
J'ai simplement inversé la condition. Tu peux tester ici http://intcoders.fr/index.php et http://www.intcoders.fr/index.php :)
Il est inutile de vérifier si strstr == false tu peux directement faire comme ceci :
<?php if(isset($_SERVER['HTTP_HOST'])) { if( !strstr($_SERVER['HTTP_HOST'], 'www')) { header('Status: 301 Moved Permanently'); header("Location: http://www.exemple.fr/login.php"); } }
En ce qui me concerne voici mon code de test :
<?php if(isset($_SERVER['HTTP_HOST'])) { if( strstr($_SERVER['HTTP_HOST'], 'www')) { header('Status: 301 Moved Permanently'); header("Location: http://www.exemple.fr/login.php"); } else { echo $_SERVER['HTTP_HOST'];} }
J'ai simplement inversé la condition. Tu peux tester ici http://intcoders.fr/index.php et http://www.intcoders.fr/index.php :)
dagena
Messages postés
230
Date d'inscription
mardi 15 janvier 2008
Statut
Membre
Dernière intervention
17 avril 2015
22
11 sept. 2012 à 15:18
11 sept. 2012 à 15:18
donc voilà après avoir essayé de multiples config, si je redirige vers url avec préfixe j'ai l'impression que ma redirection tourne en boucle et la page saute, je pense que cela viens de mes paramètres dns dans plesk (et non je ne suis pas en local) donc j'ai opté pour une redirection sans le préfixe en htaccess qui fonctionne parfaitement, de toute façon il n'est pas destiné à être référencé (tous les robots interdit par le fichier robot.txt)
voici le code que j'ai utilisé:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.exemple.fr$
RewriteRule ^(.*) http://exemple.fr/$1 [QSA,L,R=301]
RedirectPermanent /index.php http://www.exemple.fr/login.php
je vous accorde que ce code n'est pas trés logique mais il fonctionne, il me redirige vers exemple.fr/login.php avec ou sans préfixe
il serait plus logique de mettre:
RedirectPermanent /index.php http://exemple.fr/login.php mais si je ne mets pas le préfixe la page saute comme une boucle de redirection infini, ce qui me laisse dire que c'est un problème niveau DNS.
En tout cas merci pour votre aide.
voici le code que j'ai utilisé:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.exemple.fr$
RewriteRule ^(.*) http://exemple.fr/$1 [QSA,L,R=301]
RedirectPermanent /index.php http://www.exemple.fr/login.php
je vous accorde que ce code n'est pas trés logique mais il fonctionne, il me redirige vers exemple.fr/login.php avec ou sans préfixe
il serait plus logique de mettre:
RedirectPermanent /index.php http://exemple.fr/login.php mais si je ne mets pas le préfixe la page saute comme une boucle de redirection infini, ce qui me laisse dire que c'est un problème niveau DNS.
En tout cas merci pour votre aide.