Bonsoir,
Alors voila le problème que j'ai dans un fichier.php j'ai mon menu qui contient tous les liens de mon site.
Sauf que pour un lien lorsque je clic dessus j'ai l'erreur 404 ( le fichier ce trouve dans un sous-dossier) j'ai cherché sur le net j'utilise la bonne syntaxe mais sa fonctionne pas ..
Je vous mets le code:

<li><a href="/admin/admin.php">Administration</a></li>

j'ai déja essayer plusieurs idée mais toujours rien merci !

7 réponses


Salut, tu arrives à quel URL ? Tu es sûr que ton fichier est à cet URL ?

NewAir01
Auteur

salut je n'arrie pas a admin.php

salut.

est ce que tu es sous windows ou linux ? linux est sensible a la casse. CAD que Admin et admin sont 2 dossiers differents.
est ce que ton fichier a les droits de lecture ?
renseigne toi sur la balise

<base url="" />

et essai de la mettre dans ton

<head>

Edit : Désolé pour la syntaxe chelou, c'est pas de ma faute ^^

NewAir01
Auteur

Salut je suis sous Windows bah j'ai tous verifié et tous a l'air en ordre c'est assez chelou

Aller c'est cadeau :

define('WWW_ROOT', dirname(dirname(__FILE__)));

$directory = basename(WWW_ROOT);
$url = explode($directory, $_SERVER['REQUEST_URI']);
if(count($url) == 1){
    define('WEBROOT', '/');
}else{
    define('WEBROOT', $url[0] . $directory .'/');
}

Avec ça tu ne devrais pas avoir de soucis ton lien deviens <li><a href="<?= WEBROOT; ?>admin/admin.php">Administration</a></li>

bien évidemment ton fichier dois ce trouver dans le dossier admin. a la place des / tu peut mettre DIRECTORY_SEPARATOR

NewAir01
Auteur

Salut merci ^^
Mais je pourrais savoir chaque ligne veut dire quoi ?
Merci :)

On fait un define dirname pour remonter dans le dossier parent ensuite une constantes magiques

define('WWW_ROOT', dirname(dirname(__FILE__)));

On initialize la constante avec une variable basename retourne le nom de la composante finale d'un chemin

$directory = basename(WWW_ROOT);

Ensuite on explose la constante REQUEST_URI fait reférence a l'URI complète de la ressource demandée dans la ligne de requête HTTP.

$url = explode($directory, $_SERVER['REQUEST_URI']);

au finale on fait une condition

if(count($url) == 1){ //url racine
    define('WEBROOT', '/');
}else{ //
    define('WEBROOT', $url[0] . $directory .'/');
}

Si ça peut t'aidé : https://craym.eu/tutoriels/referencement/variables_url_rewriting.html#REQUEST_URI