Take the 2-minute tour ×
Webmasters Stack Exchange is a question and answer site for pro webmasters. It's 100% free, no registration required.

Are there any reasons I shouldn't use an asterisk (*) in a URL?

Background:

With asterisks, I could provide these nice and user friendly (or what do you think??) URLs:

  • example.com/some/folder/search-phrase*
    means search for pages with names starting with "search-phrase", located in /some/folder/.

  • example.com/some/**/*search-phrase*
    means search for any page with "search-phrase" anywhere in its name.

  • example.com/some/folder/*
    means list all pages in /some/folder/ (rather than showing the /some/folder/index page).

share|improve this question
    
cf. similar SO question –  Su' Jun 25 '11 at 8:52
    
Here's another similar SO question: Can a URL have an asterisk?. I didn't find them, because I spelled Asterisk with Asterix :-/ until I was corrected (see the Asterix reply below :-)). –  KajMagnus Jun 25 '11 at 16:20
    
@KajMagnus I found a site for the first time today using asterisks in their URLs. See my updated answer below. –  Nick Jul 13 '11 at 15:44
add comment

2 Answers

up vote 13 down vote accepted

On using Asterix in URLs

Using an Asterix in your URL is probably not such a great idea, largely because:

  1. Neither UTF-8 or ASCII is currently able to denote an Asterix.
  2. He would be little more than a smudge in a standard browser address bar.
  3. I doubt he'd like it very much. And he has some quite large friends.
  4. It's just weird.

On using Asterisks in URLs

Using an asterisk (*) in a URL (and, yes, I know that's what you meant all along) is also not such a great idea. Because it's a reserved character, it's not used anywhere else; even though your URL scheme seems user-friendly to you, few will think to try it, and it's likely to give unpredictable results because the meaning of wildcards in URLs is hard to discern. (I couldn't tell what all of your examples meant until I read your descriptions.)

Not only that, but there might be some more semantic/meaningful ways to do what you describe. For example, you could append a query string and use a 'find' and 'where' variable to tell your method what to find where:

Find pages starting with 'search phrase' in /some/folder/:

example.com/some/folder/?find=search-phrase&where=start

Find pages with 'search phrase' anywhere:

example.com/some/?find=search-phrase&where=anywhere

To show all pages, I would use a separate method called 'all' instead of a query string or wildcard syntax:

example.com/some/folder/all

The query string syntax is far more common than asterisks -- look in your address bar next time you do a Google search, for example -- and it will likely be easier to code too.

Finally, if you don't like the look of query strings, you could prepend a method name called 'search' and then use the next two blocks as the 'find' and 'where' variables. e.g. Instead of:

example.com/some/folder/?find=search-phrase&where=start

You could have:

example.com/some/folder/search/search-phrase/start

Then, you just need to check for the 'search' keyword in your URL path, and trigger the your search method using the next two path segments as variables.


UPDATE: I found my first asterisk in a URL today. The new archive.org interface is using it exactly as you describe (as part of a search feature), in place of an 'all' keyword. e.g.:

http://wayback.archive.org/web/*/http://google.com

instead of

http://web.archive.org/web/20040214050058/http://www.google.com/

The first example returns archived listings from all dates for google.com, rather than just pages from a certain date (second example). Interestingly, I can't link to the live page here, because the Stack Exchange site encodes the * character as %2a when it appears in URLs, which results in a 404 from archive.org. (Perhaps another reason not to use asterisks in URLs.)

I still think it's not quite as clear as 'all', but, if you're looking for examples of other sites adopting asterisks in their URLs, that's the first one I've seen.

share|improve this answer
    
W.r.t. Asterix: What! Did you think I meant "Asterisk"? –  KajMagnus Jun 25 '11 at 9:01
    
W.r.t. Asterix: Oh that's why I didn't find any relevant pages on StackOverflow or Webmasters. Now I found 2 related pages on S.O.: Allowing asterisk in URL and Can a URL have an asterisk? -- thanks :-) –  KajMagnus Jun 25 '11 at 9:02
    
Thanks for the info on how end users probably would perceive the asterisks. Now I will most likely prefer query strings instead. –  KajMagnus Jun 25 '11 at 9:05
    
(In case anyone wonders about the reference to Asterix: I misspelled Asterisk, I thought it was Asterix :-)) –  KajMagnus Jun 25 '11 at 16:22
add comment

Yes, because it's a reserved character.

Other reserved characters

The asterisk ("*", ASCII 2A hex) and exclamation mark ("!" , ASCII 21 hex) are reserved for use as having special significance within specific schemes.

From here: http://www.w3.org/Addressing/URL/4_URI_Recommentations.html

EDIT:

Section 2, on characters, has been rewritten to explain what characters are reserved, when they are reserved, and why they are reserved, even when they are not used as delimiters by the generic syntax. The mark characters that are typically unsafe to decode, including the exclamation mark ("!"), asterisk ("*"), single-quote ("'"), and open and close parentheses ("(" and ")"), have been moved to the reserved set in order to clarify the distinction between reserved and unreserved and, hopefully, to answer the most common question of scheme designers.

From here: http://labs.apache.org/webarch/uri/rfc/rfc3986.html#modifications

share|improve this answer
    
Hmm, * is a reserved character, yes. But it's a sub-delimiter, and when I read the URI spec it seems to me that it's fine to use sub-delims in an application specific manner, in the path component of the URI. -- Doesn't this mean it's OK to use * (and also e.g. @, :, +, ,) in the way I did? –  KajMagnus Jun 25 '11 at 8:03
    
I'm confused by the phrase "are reserved for use as having special significance within specific schemes". Can I not define my own application specific scheme? Could that be intention, with sub-delims, that web apps use them in a web app specific manner? –  KajMagnus Jun 25 '11 at 8:06
    
For what it's worth, here someone says Wikipedia allows asterisks in URLs and someone else says it's okay: Can a URL have an asterisk? –  KajMagnus Jun 25 '11 at 9:09
    
You asked if you should use it, not if it's technically possible or not, and the general idea is that unless you know exactly what you are doing, you should not use it. –  Alex Jun 25 '11 at 23:42
    
I don't know if I agree with that general answer. A way to learn new stuff, is to do something that you don't know how it works, and then you'll learn and find out. How would our future be if people in general did only things that they knew exactly how they were working? (It's a pre-alpha-version that I'd be releasing, so it's not meant for production :-)) -- Thanks for the info and links anyway :-) –  KajMagnus Jun 27 '11 at 7:38
show 3 more comments

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.