By_Engine
@By_Engine

Как принять http запросы?

Через htaccess отправляю все запросы на index.php
RewriteRule ^(.*)$ index.php [L,QSA]
Теперь в index мне нужно как то их принять и обработать. Как их принять?
В результате должен быть список всех отправленных запросов, включая картинки, стили и тд
  • Вопрос задан
  • 647 просмотров
Пригласить эксперта
Ответы на вопрос 4
Stalker_RED
@Stalker_RED
Думаю для вас не секрет, что все запросы стилей, картинок и т.д. это не один большой запрос, а каждый ресурс запрашивается отдельно.
Список всех запросов вы можете посмотреть в access.log апача, или что там у вас. Статику обычно отдают средствами вебсервера (nginx, apache) не дергая для этого php.
Подход, когда все запросы (или все запросы к не-статическим файлам) перенаправляются в один php файл, называется "единая точка входа", в сети масса статей с описанием как это делается.

Вкратце:
#кусок из symfony
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^(.*)$ /app.php [QSA,L]


т.е. запрос попадает в app.php только в том случае, когда отсутствует статический файл.
Например: если существует файл /images/logo.png - он будет отдан самим веб-сервером, если не существует - запрос уйдет в php.

Точка входа на php организовывается как-то так:
Берем значение из $_SERVER['REQUEST_URI'], передаем в некую штуку, которую часто называют routing, которая парсит его и решает какой кусок кода запускать дальше.
Ответ написан
Комментировать
@VisualIdeas
Разбирайте глобальную переменную $_SERVER["REQUEST_URI"] и от этого пляшите.
Для начала выведите её
<?php
   echo $_SERVER["REQUEST_URI"];
?>

И дальше регулярки ну или банальный explode(...);
Ответ написан
@IceJOKER
Web/Android developer
Изображения и всякие ресурсы лучше не отправлять в index.php

в index.php:
var_dump($_SERVER);
Ответ написан
Комментировать
@Everal
посмотри в $_GET $_POST
дальше поймешь
Ответ написан
Ваш ответ на вопрос

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

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