Можно ли в скобках указывать URL?

Я создаю URL-адреса для своих кампаний AdWord, а некоторые названия кампангов содержат скобки ( ) а также [ ] скобки. И пример URL выглядит так

http://www.website.com/?utm_source=google%5BB%2B%5D&utm_medium=cpc&utm_content=google_ad(B)&utm_campaign=product

Это нормально?

2 ответа

Решение

Скобки "()" могут использоваться как таковые в части запроса URL (то есть части после "?"). Допустимо, но не обязательно,%-кодировать их как "%28" и "%29".

Скобки "[]" должны кодироваться в%, как "%5B" и "%5D", в части запроса.

Образец URL, который является реальным URL, поскольку www.website.com действительно существует (пожалуйста, используйте www.example.com в качестве фиктивного доменного имени, оно гарантированно не существует), таким образом, сформирован правильно.

Общие правила для синтаксиса URL определены в интернет-стандарте STD 66, который в настоящее время является RFC 3986. Его Приложение A определяет правила для символов, перечисляя круглые скобки как принадлежащие группе "sub-delims", которая допускается без кодирования% в части запроса, но скобки как принадлежащие "gen-delims", которые должны кодироваться%.

О, это хорошо (как Kinected также спросил: что хорошо?) Для скобок, но, возможно, не для квадратных скобок. Но если вы боитесь, всегда используйте urlencode для строк запроса.

<?php
echo "http://www.example.com/index.php?boo=",urlencode("sample(parenthesis)and[square_brackets]");
//http://www.example.com/index.php?boo=sample%28parenthesis%29and%5Bsquare_brackets%5D

Демо: http://codepad.org/ZKaROUr7

Другие вопросы по тегам