Создание самого мощного легкого сайта
.
От простого до сайта маркетплейса легко!
Настоящая система элементарно проста и обеспечивает работу с количеством файлов в плоть до миллионов.
99,99% этих файлов создаются контроллером из информации получаемой от База Данных, являющейся мозгом системы.
При чем, логика формирования файлов определяется структурой БД на этапе ее проектирования для реализации функций сайта, так как их видит разработчик.
На базе этой системы легко создаются сайты как компаний и интернет-магазинов, так и гипермаркетов и маркетплейсов, а также больших информационных систем
И все это легко и просто и не нужно ни каких CMS и фреймворков и доступно любому начинающему разработчику способному логически мыслить.
Для демонстрации функционирования базового сайта имеется http://www.site-1.svt-studio.ru/ с выдвигающимся мегаменю.
Структура базого сайта представлена ниже
Все другие решения - это базовый сайт + опции.
Опции это различные скрипты и модули (jquery, форма обратной связи, капча, модальные окна, корзина покупок и др.)
Как это работает.
1. При отсутсутствии в каталоге сайта реального файла с заданным URL, файл .htaccess передает управление файлу controller.php.
Для этого в файле .htaccess должны быть прописаны ниже следующие строки.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ controller.php [L,QSA]
2. По заданному URL controller.php находит связанную с этим URL строку в БД и передает данные из нее сборочному файлу title.php
3. Сборочный title.php формирует требуемый виртуальный .html файл из информации полученной от контроллера, метатегов, стилей и меню (главного, верхнего и нижнего) и передает его браузеру.
Для работы с SEO приняты и реализованы ниже следующие правила:
1. Информционными являются .html файлы
2. Служебные файлы .php запрещены для индексирования поисковыми системами
Пример кода файла Контроллера controller.php
ob_start();
function Err404() {
header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
include_once("err404.php");
exit;
}
include 'mysql/init.php';
if (!empty($_SERVER['REQUEST_URI'])) {
$uri=trim($_SERVER['REQUEST_URI'], '/');
}
$segments = explode('?', $uri);
$uri=$segments[0];
$urii = preg_replace("~.html.html~",'',$uri);
if ($urii==$uri) {}
else {Err404();}
$urii = preg_replace("~.html~",'',$uri);
if ($urii==$uri) { Err404();}
$segments = explode('_', $uri);
if (!empty($segments[2])) {Err404();}
if (empty($segments[1])) {
$artikul = preg_replace("~.html~",'',$segments[0]);
}
$q = mysql_query("SELECT * FROM $table WHERE artikul='$artikul' and s3='ok'");
$result = mysql_fetch_array($q);
$artikul = $result['artikul'];
if (!empty($artikul)) {
$num_rows = mysql_num_rows($q);
if ($num_rows=="1") {include "title.php"; exit;}
else {Err404();}
exit;
}