Могут ли параметры укорачивания URL-адресов?
Я использую 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-адресу, который shoul (конечно) приземляется на моей странице.
Является ли это недостатком bit.ly(и другие, возможно, могут это сделать) - или "пересылка параметров" не работает с 301 перенаправлением?
Манфреда
Ответы
Ответ 1
Нет никаких технических причин, почему это невозможно. Сервис просто должен будет посмотреть, какие параметры он отправляет, а затем переписать целевой 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-адреса, к которому вы звонили. Это требует большего количества ресурсов системы для каждого перенаправления, что может стать большой проблемой, если ваша служба используется очень часто - вам потребуется больше полномочий сервера для обработки того же количества переадресаций. Я не думаю, что компромисс считается "достойным".
Ответ 2
Укорачивание URL связывает уникальный ключ на основе полного URL (параметры и все), поэтому невозможно передать параметры в службу сокращения.
Как правило
http://iphone.pp-p.net/default.aspx?param=10
должен создать другой ключ для
http://iphone.pp-p.net/default.aspx?param=22
"Пересылка параметров" просто невозможна в таких переадресациях, поскольку параметры не являются допустимыми частями сокращенного URL-адреса в большинстве (если не всех) сервисах.
Ответ 3
Как уже упоминалось в комментариях Rinogo
В Clickmeter
Destination URL : www.yoursite.com?myparam1={id1}&myparam2={id2}
Tracking link : www.go.clickmeter.com/38w2?id1=123&id2=abc
After click : www.yoursite.com?myparam1=123&myparam2=abc
В TinyUrl
Destination URL : http://x.com?a=1
Shorten URL : https://tiny url.com/y6gh7ovk
Shorten URL + param : https://tiny url.com/y6gh7ovk?a=2
Resultant URL : http://x.com/?a=1&a=2
Добавлено место для публикации tinyurl