Bonjour, j'essaye d'inclure un fichier CSS dans mon architecture MVC ( Je suis en train d'apprendre le MVC )
Mais le CSS ne se load pas, j'imagine qu'il y a quelque chose à voir avec le .htaccess, mais comment faire en sorte qu'il se load ?
.htaccess :
RewriteEngine On
RewriteRule ^([^/]+)/? index.php?url=$1 [L,QSA]
Views/Index.php :`
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Accueil</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<h1>Test</h1>
</body>
</html>
Déja essayé url absolu etc, rien n'y fait, le seul moyen que j'ai trouvé et qui fonctionne et de mettre les 10 000 lignes de codes css dans le fichier Views/Index.php ><
Ta réécriture est trop large, tu devrais vérifier que le fichier que l'utilisateur essaie d'atteindre n'existe pas avant. Regarde du côté des RewriteCond !d et !f
Je ne vois pas, je suis pas assez expérimenté en .htaccess, mais j'ai essayé comme ça :
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/? index.php?url=$1 [L,QSA]
Edit : J'ai remis le .htaccess comme ça :
RewriteEngine On
RewriteRule ^([^/]+)/? index.php?url=$1 [L,QSA]
Et le CSS est load, sans aucune raison, je ne comprend vraiment plus rien. Haha
J'ai rien dit, ça ne fonctionne plus<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Accueil</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<h1>Test</h1>
</body>
</html>
Du coup effectivement c'est bien ça et tu peux me dire ce qui se passe quand tu essaie de directement chargé le fichier css ? /css/style.css
On vois le css, alors qu'avant on ne le voyait pas
Le langage CSS, je veux dire, comme lorsqu'on ouvre un fichier css depuis un navigateur
RewriteEngine On
RewriteRule ^([^/]+)/? index.php?url=$1 [L,QSA]
<link rel="stylesheet" type="text/css" href="http://localhost:8888/CCP/css/style.css">
ne marche pas.
Dans ce cas, j'ai l'erreur
Notice: Undefined index: url in /Applications/MAMP/htdocs/CCP/classes/Route.php on line 15
Qui vient du fichier Route :
<?php
class Route {
public static $validRoutes = array();
public static function set($route,$function) {
self::$validRoutes[] = $route;
// print_r(self::$validRoutes);
if ($_GET['url'] == $route)
{
$function->__invoke();
}
}
}
?>
Merci de m'aider en tout cas ! x)
Sauf que même si je rentre index.php, ça m'affiche la même erreur, je suis en train de chercher comment vérifier si l'URL est vide avec le htaccess sur Internet, la
NBon c'est dans ton code PHP
if ($_GET['url'] == $route)
Tu ne vérifie pas avant si 'url' existe dans $_GET
Donc tout simplement un :
if (isset($_GET['url']))
avant le
if ($_GET['url'] == $route)
?
Sauf que même si je rentre bien l'url "index.php", ça me met la même erreur
L'adresse
index.php?url=index.php
fonctionne , avec le CSS en plus