Может ли URL-адрес сократить параметры? - PullRequest
42 голосов
/ 04 апреля 2010

Я использую bit.ly, чтобы сократить свои URL. Моя проблема - параметры не пройдены. Позвольте мне объяснить, что я использую http://bit.ly/MYiPhoneApps, который перенаправляет (скажем,) на http://iphone.pp -p.net / default.aspx Теперь, когда я пытаюсь http://bit.ly/MYiPhoneApps?param=xx, этот параметр не добавляется в результирующий URL. Я знаю, что мог бы создать дополнительный «короткий URL», включающий в себя параметр - так что http://bit.ly/WithParam приведет к http://www.mysite.com/somepath/apage.aspx?Par1=yy и т. Д.

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

Является ли это недостатком bit.ly (и, возможно, другие могут это сделать) или «переадресация параметров» не работает с перенаправлениями 301?

Манфред

Ответы [ 2 ]

18 голосов
/ 04 апреля 2010

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

Проблема в том, что не обязательно четко определено, как это сделать.

Предположим, у вас есть URL http://example.com/default.aspx?foo=bar, а у него короткий URL http://foo.com/ABCD. Что должно произойти, если вы попытаетесь получить доступ к http://foo.com/ABCD?foo=baz? Должно ли оно заменить значение, чтобы вы получили foo=baz? Должен ли он добавить его, чтобы сделать foo=bar&foo=baz? Если мы включим оба, в каком порядке они должны быть?

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

Вы можете возразить: «Ну, просто не допускайте этого для URL, где параметры уже присутствуют», но есть также проблема, которая может значительно усложнить процесс. Без этого вы просто ищете ключ в базе данных и отправляете заголовок перенаправления. Теперь вам нужно также проанализировать URL-адрес, чтобы проверить параметры, и добавить часть URL-адреса, по которому вы вызывались. Для этого требуется больше системных ресурсов на одно перенаправление, что может стать большой проблемой, если ваша служба используется очень часто - вам потребуется больше ресурсов сервера для обработки того же количества перенаправлений. Я не думаю, что компромисс считается «стоящим».

3 голосов
/ 04 апреля 2010

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

Обычно

http://iphone.pp-p.net/default.aspx?param=10

должен выдать ключ, отличный от

http://iphone.pp-p.net/default.aspx?param=22

«Переадресация параметров» просто невозможна при такого рода перенаправлениях, поскольку параметры не являются допустимыми частями сокращенного URL-адреса большинства (если не всех) служб.

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