Problème avec un fichier .htaccess
Résolu
jb1993
Messages postés
98
Statut
Membre
-
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)
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:
- Problème avec un fichier .htaccess
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
5 réponses
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");
}
?>
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
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
a mon avis ton Rewrite n'est pas bon
vas voir ce site:
https://www.webmaster-hub.com/publications/mod_rewrite-ou-la-reecriture-des-url-a-la-volee/
vas voir ce site:
https://www.webmaster-hub.com/publications/mod_rewrite-ou-la-reecriture-des-url-a-la-volee/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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');
?>
.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');
?>