Il faut commencer par définir un virtualhost dans phpmyadmin qui sera le point d'entrée du site
(Au lieu d'avoir le virtualhost à /www, on le met à /www/public)
Par exemple:
- Nom du virtualhost:
Labo2 - Chemin absolu vers le virtualhost:
d:/proforma/labo/labo 2/www/public
Signifie que lorsqu'on entre l'url http://Labo2/index.php on accède au fichier d:/proforma/labo/labo 2/www/public/index.php
Dans l'exemple, ça donnerait d:/proforma/labo/labo 2/www/public/.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]Ce fichier permet:
- D'activer les redirections d'un endroit qui mène à un autre
- Si on ne trouve pas le fichier
- Si on ne trouve pas le dossier
- On redirige l'utilisateur à index.php
Maintenant qu'on est redirigé à index.php il faut qu'on s'occupe de choisir quelle page afficher
<?php
define('WWW_ROOT', dirname(__DIR__)); //Chemin absolu de notre projet
define('PAGES_PATH', WWW_ROOT . '\\pages\\'); //Chemin absolu des pages de notre projet
define('RELATIVE_URL', rtrim(dirname($_SERVER['SCRIPT_NAME']), '\\')); //Chemin relatif, à partir du site, utilisé par HTML/CSS
//On récupère et nettoie l'url entrée dans le navigateur
$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
//Retrouve le chemin relatif qui correspond au chemin absolu du projet
$route = str_replace(RELATIVE_URL, '', $uri);
//Endroit où mettre toutes les redirections que l'on veut
//"url" mène à "page"
$routes = [
'/' => 'home.php',
'' => 'home.php',
'/index' => 'home.php',
'/page1' => 'page1.php'
];
//Si l'url correspond à une des urls de redirection, on appelle la page
if (array_key_exists($route, $routes))
{
$title = 'Adops';
require PAGES_PATH . $routes[$route];
}
else
{
http_response_code(404);
echo "404 - Page not found.<br/>
<a href=\"/\">Return Home</a>";
}