nastya97core
@nastya97core
Начинающий программист

Как на развернуть весь сайт в index.php?

Здравствуйте. Возможно не совсем понятный заголовок, но суть такая:
я хочу в файле index.php прописать в начале все нужные мне функции, а ниже делать include определённых страниц при определённых запросах из адресной строки. Что-то вроде этого:
match ($_SERVER['REQUEST_URI']) {
    		"/index.php" => include "main.html",
    		"/cart" => include "cart.html",
    		"/admin" => include "admin.html",
    		default => include "main.html",
};

Шапка и футер сайта у меня везде одинаковые, а контент разный.
Как реализовать?
  • Вопрос задан
  • 311 просмотров
Решения вопроса 2
w3bsmes
@w3bsmes
Куратор тега «Глупые вопросы»
Начни с этого или этого
Ответ написан
Комментировать
nastya97core
@nastya97core Автор вопроса
Начинающий программист
В папке сайта нужно создать файл .htaccess
вот с таким содержимым
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
</IfModule>


а потом уже в нужном месте, в нужное время делать
match ($_SERVER['REDIRECT_URL']) {
    	"/index.php" => include "main.html",
    	"/cart" => include "cart.html",
    	"/admin" => include "admin.html",
    	default => include "main.html",
};

ну или через if, если у вам не php8
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Сейчас в этом коде все поставлено с ног на голову.
Я так понимаю, что всё затевается ради того, что "Шапка и футер сайта у меня везде одинаковые"
И сначала идет шапка, потом этот матч, а потом футер.
То есть у нас код начинается с вывода HTML, в то время как это должно быть самое последнее, что происходит в скрипте.
А всё должно быть строго наоборот - сначала должна выполняться обработка данных РНР кодом, и только потом начинаться вывод HTML.

Взять к примеру запрос /cart, который в обязательном порядке должен обрабатывать запросы POST
после такого запроса обязательно должен выполняться редирект. А редирект мы сделать не можем, потому что у нас пол-сайта уже клиенту ушло.
Не говоря уже о других НТТР загололовках, или о том, что хидер у тебя не статичный, и значительно меняется от страницы к странице.

Для начала надо сделать вот так, phpfaq.ru/tech/tpl#example

Потом, когда всё заработает, можно будет переделать на единый индекс, хотя это не будет иметь большого смысла на данном этапе. потом, когда сайт будет представлять из себя не отдельные страницы, а фабрику по отдаче контента - тогда можно будет переделать на единый индекс.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы