Я знаю, как эти URL-адреса загружают страницу … на основе их параметра GET.
http://www.bedupako.com/songs.php?page=show_song_details.php&songid=1167&n=0&back=no
и в back-end примерно что-то вроде этого:
<?php switch($_GET['page']) { case 'xx': include('my page');break; . . . default: include('default');break; } ?>
Но как работают эти URL-адреса? Я имею в виду, как динамически загружаются данные?
www.dummysite.com/parm/subpage1/xyz www.dummysite.com/parm/subpage2/xyz
Как эти синтаксические анализа аналогичны параметрам GET как веб-сайты?
Вы можете использовать mod_rewrite самостоятельно, как предложили другие, но большинство сайтов этого не делают, потому что оно не очень гибкое и может раздражать вас, если у вас есть несколько паролей этих «хороших» URL.
Вместо этого они устанавливают базовое правило перезаписи для пересылки всего на один index.php, а затем на стороне приложения они анализируют URI на основе определенных шаблонов – они называются «маршрутами». Разбор маршрута обычно происходит в каком-то классе маршрутизации, который обрабатывает определенные маршруты и сравнивает их с URI, а затем, когда он находит совпадение, анализирует параметры для согласованного маршрута.
Все это дает хорошие примеры маршрутизатора, но их трудно понять без других взаимодействующих классов:
Zend_Controller_Router_Rewrite
sfPatternRouting
Router
CI_Router
В большинстве случаев это будет выполняться веб-сервером «на лету» в соответствии с набором правил. Специфика этого зависит от сервера к серверу и от случая к случаю. В Apache обычно выполняется с использованием расширения mod_rewrite .
Вы должны посмотреть http://httpd.apache.org/docs/2.0/misc/rewriteguide.html переписывание URL-адресов, если вы используете apache (скорее всего)