Problème avec un fichier .htaccess

Résolu/Fermé
jb1993 Messages postés 85 Date d'inscription dimanche 17 août 2008 Statut Membre Dernière intervention 7 septembre 2011 - 26 mai 2009 à 17:28
jb1993 Messages postés 85 Date d'inscription dimanche 17 août 2008 Statut Membre Dernière intervention 7 septembre 2011 - 2 juin 2009 à 12:49
Bonjour,
j'ai tenter d'améliorer mon site en abandonnant une vieille technique pour inclure qui nécessite un array. Afin d'automatiser la tâche et permettre d'utiliser l'extension .php, j'ai recrée la fonction d'include avec la fonction is_file. Le problème vient sans doute du fichier .htaccess qui me renvois sans cesse "index" comme valeur get
Chaque fichier à inclure se trouve dans un dossier nommer tout bêtement "page"

Source :

.htaccess

# index.php page
RewriteRule ^([a-z]+)\.php$ index.php?page=$1 [L]


index.php (uniquement le code utile)
<?php if(isset($_GET['page']))
{
if(is_file('page/' . $_GET['page'] . '.php'))
{
include('page/' . $_GET['page'] . '.php');
}
}
else
include("page/accueil.php");
?>

(Ps : Le else marche même plus, en plus)
A voir également:

5 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
26 mai 2009 à 17:39
et comme ça:

<?php 
if(isset($_GET['page'])){
	if(is_file("page/".$_GET['page']".php")){
		include("page/".$_GET['page'].".php");
	}
}else{
	include("page/accueil.php");
}
?> 
1
jb1993 Messages postés 85 Date d'inscription dimanche 17 août 2008 Statut Membre Dernière intervention 7 septembre 2011 3
26 mai 2009 à 17:55
Ceci ne change absolument rien $_GET['page'] vaut toujours "index" qu'importe ce que je face.
0
jb1993 Messages postés 85 Date d'inscription dimanche 17 août 2008 Statut Membre Dernière intervention 7 septembre 2011 3
27 mai 2009 à 19:57
Up,
L'erreur continue de persister sans que je ne puisse trouver, voici donc une autre information. Pour le moment je peux faire marcher le else en modifiant quelque peu le fichier .htaccess
L'url se présente de la sorte : http://localhost/suz2/

Edit : J'ai trouvé le problème sans savoir comment le résoudre, $_GET['page'] devient index car j'ouvre chaque page depuis celle-ci.
RewriteRule ^([a-z]+)\.php$ index.php?page=$1 [L]
Voici où il la trouve. J'aimerais donc savoir, comment récupérer avec un RewriteRule la bonne partie de la page (Donc dans l'url http://localhost/suz2/plan.php, il doit récupérer plan en évitant qu'il confonde avec la vrai url qui n'est autre que http://localhost/suz2/index.php?page=plan)
Pour ceux qui n'aurait pas tout compris, il faudrait que la méthode RewriteRule lise l'url bêtement sans se soucier de la véritable url
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
28 mai 2009 à 22:04
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jb1993 Messages postés 85 Date d'inscription dimanche 17 août 2008 Statut Membre Dernière intervention 7 septembre 2011 3
2 juin 2009 à 12:49
Problème résolu, en faire, il récupérait l'adresse réelle du site et non pas le détournement. Voici la source du bon résultat tester en localhost.

.htaccess
RewriteRule ^([a-z]+)\.php$ index.php [L]

<?php preg_match('#/suz2/([a-z]+).php#', $_SERVER['REQUEST_URI'], $page); ?>
(...)
<?php if(isset($page[1]) AND $page[1] != NULL)
{
if(is_file('page/' . $page[1] . '.php'))
include('page/' . $page[1] . '.php');

else
include('page/accueil.php');
}
else
include('page/accueil.php');
?>
0