Bonjour l'ami !
Alors tout d'accord quand un utilisateur appelle une page ses par exemple : index.php?page=ma_page
donc avec .htaccess ont pourrait faire cela :
RewriteEngine On
RewriteRule page/([a-zA-Z0-9]+) index.php?page=$1 [L]
Où
RewriteEngine On
RewriteRule (.*) webroot/$1 [L]
Dans le dossier webroot vous créer un nouveau .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index.php/$1 [L]
RewriteRule
Dans le index.php de webroot :
<?php
require('libs/template.php');
$_template = new Template();
$url = isset($_GET'url']) ? $_GET'url'] : null;
$url = rtrim($url, '/');
$url = explode('/', $url);
if(empty($url[0])) {
$page = 'index';
} else {
$page = $url[0];
}
$file = 'template/pages/' . $url[0] . '.php';
if(isset($page) && preg_match("/^[a-z0-9]+$/i", $page)) {
$page = strtolower($url);
if(file_exists($file)) {
$_template->output($page);
} else {
$_template->output('404');
}
} else {
$_template->output($page);
}
fichier libs/template.php
<?php
class Template {
var $layout = 'default';
public function output($file) {
ob_start();
session_start();
require_once('libs/configuration.php');
if(isset($file) && file_exists('template/pages/' . $file . '.php')) {
require_once('template/pages/' . $file. '.php');
} else {
die('Une erreur ses produite [Le fichier : ' . $file. '.php est inexistant].');
}
$content_for_layout = ob_get_clean() . "\r\n";
if(isset($this->layout) && file_exists('template/layouts/' . $this->layout. '.php')) {
require_once('template/layouts/' . $this->layout . '.php');
} else {
die('Une erreur ses produite [Le fichier : ' . $this->layout. '.php est inexistant].');
}
}
}
Voilà.
Ps : Si il y à des erreur ses par ce que je n'est pas tester le code est que j'ai tout marquer dans les balise code.
En espérant vous avoir aider :)
Cordialement.