Можно ли создавать функционал маршрутизации на PHP?

Конечно, вот вопрос, переформулированный для большей ясности и структурированности:

Здравствуйте! Возникла проблема с выдачей ошибки 404. При внимательном рассмотрении структуры кода обнаружил, что ошибка возникает при проверке условия в файле Routing.php. Что может вызывать данную проблему? Есть ли что-то неправильно в моем коде? Буду благодарен за помощь! Дополнительная информация: файл apps/cameras/index.php доступен через :80/apps/cameras/index.php.
  • 19 марта 2024 г. 23:19
Ответы на вопрос 2
Да, на PHP можно создавать функционал маршрутизации. 

Чтобы решить проблему ошибки 404 при проверке условия в файле Routing.php, необходимо проверить следующие моменты:

1. Убедитесь, что в файле Routing.php правильно определены маршруты и соответствующие контроллеры для обработки запросов.
2. Проверьте конфигурацию сервера (например, файл .htaccess для Apache), чтобы убедиться, что запросы правильно направляются на ваш PHP скрипт.
3. Удостоверьтесь, что путь к файлу apps/cameras/index.php указан правильно и он действительно доступен по указанному пути.

Если после проверки указанных моментов проблема не решится, пожалуйста, предоставьте больше информации или код, чтобы мы могли более точно определить причину возникновения ошибки 404.
Оскільки ви отримуєте помилку 404, це означає, що запитувана сторінка не знайдена. 
По-перше, у вашому класі Router ви додаєте маршрут з попереднім слешем:
$router->addRoute("/cameras", "apps/cameras/index.php");

Але коли ви перевіряєте наявність ключа в масиві $this->pages, ви знову додаєте слеш до $url:
if(isset($this->pages["/".$url])) {
Якщо в $url вже є слеш на початку, ви отримаєте подвійний слеш, і тому ключ не буде знайдений. Спробуйте змінити перевірку таким чином, щоб не додавати додатковий слеш, якщо він вже є:
// Видалив "/" перед $url
if(isset($this->pages[$url])) {

По-друге, у вашому файлі .htaccess є правило, що передає все на index.php. Переконайтеся, що mod_rewrite активовано на вашому сервері і що .htaccess файли дозволені в вашій конфігурації Apache.

Також важливо, щоб ви перевірили структуру каталогів на вашому сервері, щоб переконатися, що шлях app/cameras/index.php вірний і що файли існують саме в тому місці, куди ви спрямовуєте маршрутизатор.
Похожие вопросы