Я перенаправляю все запросы страниц через файл с именем index.php, который просматривает URL-адрес, запрошенный посетителем, и видит, существует ли соответствующий файл шаблона.
Например, http://www.website.com/contact на самом деле направит на скрипт index.php. и следует проверить, существует ли файл /var/html/template/contact.tpl, и включить его, если он есть.
Меня беспокоит безопасность и нулевые символы, дополнительные точки и косые черты и т. д. Нужно ли применять какой-либо фильтр к приведенному ниже коду или достаточно использовать pathinfo и префикс каталога? Очевидно, я не хочу, чтобы кто-либо мог злонамеренно включать файлы за пределами указанного каталога шаблонов.
<?php
define ('TEMPLATES', '/var/html/templates');
$page = pathinfo ($_SERVER['REQUEST_URI'], PATHINFO_FILENAME);
if (file_exists (TEMPLATES . '/' . $page . '.tpl')) {
include (TEMPLATES . '/' . $page . '.tpl');
} else {
header ('HTTP/1.0 404 Not Found');
echo 'Sorry page not found';
}
?>