Как реализовать маршрутизацию URL в PHP

Как реализовать маршрутизацию URL в PHP.

Если вы используете Apache, вы можете выполнять маршрутизацию URL через mod_rewrite.

Небольшой пример:

RewriteEngine On RewriteRule ^(dir1)/?(path2)? main.php?dir=$1&path=$2 

У этого будет любой запрос, например

 http://yoursite.com/dir1/path1 

обслуживается

 http://yoursite.com/main.php?dir=dir1&path=path2 

Больше примеров здесь .

В другой альтернативе каждый запрос перенаправляется на один файл php

 RewriteEngine On RewriteRule (.*) main.php?request=$1 

а затем сделать это в коде, где вы можете использовать аналогичный подход , имея набор регулярных выражений, которые сопоставляются некоторым кодом, а затем перенаправляются через header () или только внутренне.

Прежде всего, вам понадобится Apache (предположим, что ваш веб-сервер Apache) mod_rewrite будет включен.

Затем вам нужно создать RewriteRule для перенаправления всего на страницу index.php.
Что-то вроде этого может сделать:

 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .* index.php 

Он перенаправляет каждый запрос в файл, который не существует для index.php; это означает, что если запрошенный URL-адрес – http://www.example.com/blah, на самом деле это будет index.php.

Об этом, вот пара ссылок, которые могут помочь:

  • Руководство по перезаписи URL
  • mod_rewrite: Руководство для начинающих по перезаписи URL-адресов

Затем эта страница должна определить, что должно отображаться, в зависимости от того, какой начальный URL был вызван – или какие параметры получены.

Это можно сделать, например, с помощью Front Design Design Design , например, он реализован, например, в большинстве современных PHP-фреймворков.

Вопросов по этому вопросу было много. некоторые из них (и их ответы), вероятно, помогут вам. Например :

  • Как мне переписать URL-адрес в php?
  • Отображение URL-адресов в PHP?
  • Маршрутизация URL-адресов PHP-приложений