Как работают расширенные URL - PullRequest
3 голосов
/ 06 августа 2011

Я знаю, как URL-адреса такого типа загружают страницу ... на основе их параметра GET.

http://www.bedupako.com/songs.php?page=show_song_details.php&songid=1167&n=0&back=no

и в бэкэнде примерно что-то вроде этого:

<?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 param как веб-сайты?

Ответы [ 3 ]

2 голосов
/ 06 августа 2011

В большинстве случаев это будет обрабатываться веб-сервером на лету в соответствии с набором правил.Специфика этого будет варьироваться от сервера к серверу и в каждом конкретном случае.В Apache это обычно делается с использованием расширения mod_rewrite .

1 голос
/ 06 августа 2011

Вы можете использовать mod_rewrite сам по себе, как предлагали другие, но большинство сайтов не делают этого, потому что он не очень гибкий, и его может раздражать поддержание, если у вас есть более пары этих "симпатичных" URL-адресов.

Вместо этого они устанавливают основное правило перезаписи для пересылки всего в один index.php, а затем на стороне приложения они анализируют URI на основе определенных шаблонов - они называются «маршруты».Синтаксический анализ маршрута обычно происходит в некотором классе маршрутизации, который обрабатывает определенные маршруты и сравнивает их с URI, а затем, когда находит совпадение, анализирует параметры для сопоставленного маршрута.маршрутизатор, но их трудно понять без других взаимодействующих классов:

1 голос
/ 06 августа 2011

Вы должны посмотреть на http://httpd.apache.org/docs/2.0/misc/rewriteguide.html переписывание URL, если вы используете apache (скорее всего)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...