Problème avec un fichier .htaccess

Résolu
jb1993 Messages postés 98 Statut Membre -  
jb1993 Messages postés 98 Statut Membre -
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 5413 Statut Membre 894
 
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 98 Statut Membre 3
 
Ceci ne change absolument rien $_GET['page'] vaut toujours "index" qu'importe ce que je face.
0
jb1993 Messages postés 98 Statut Membre 3
 
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 5413 Statut Membre 894
 
0

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

Posez votre question
jb1993 Messages postés 98 Statut Membre 3
 
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