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

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

 Zed22 авг. 2009 г., 16:11
На самом деле возможна тройка =)
 Macha22 авг. 2009 г., 16:03
Возможный дубликат:stackoverflow.com/questions/125677/php-application-url-routing, Попробуйте посмотреть на этот вопрос.
 random22 авг. 2009 г., 16:22
Либо ониработаем вместе или этоКукольный счет носка.
 jasinth premkumar20 февр. 2018 г., 17:31
смотреть этот урокyoutube.com/watch?v=byjMGftJeyU
 cherouvim22 авг. 2009 г., 16:03

Ответы на вопрос(2)

(Я полагаю, ваш веб-сервер Apache) mod_rewrite быть включенным.



Затем вам нужно создать RewriteRule, чтобы перенаправить все на вашу страницу index.php.

Нечто подобное может сделать:

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

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

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

Руководство по перезаписи URLmod_rewrite: начинающийРуководство по перезаписи URL



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

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



На SO было много вопросов по этой теме; некоторые из них (и их ответы) могут вам помочь. Например :

Как мне переписать URL в php?URL-сопоставление в PHP?PHP Application URL Routing
 WCWedin19 янв. 2014 г., 21:24
Это должно быть стандартным ответом на этот вопрос. Он работает для любого серверного языка, работающего на 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 () или просто внутренне.

Ваш ответ на вопрос