A simple way to do that would be to list all the symbols allowed in a URL that aren't alphanumeric — the ones I came up with with a quick Internet search are $-.+!'();/?:@=& — and just encode those somehow. My list has 17 symbols, and the simplest way to encode them without surrendering legibility that I can think of would be to pick one alphanumeric symbol, say s, to act as a shift code:
$ ⇒ s0 - ⇒ s1 _ ⇒ s2 . ⇒ s3 + ⇒ s4 ! ⇒ s5
* ⇒ s6 ' ⇒ s7 ( ⇒ s8 ) ⇒ s9 ; ⇒ sa / ⇒ sb
? ⇒ sc : ⇒ sd @ ⇒ se = ⇒ sf & ⇒ sg s ⇒ ss
Another approach would be to transform the original URL into a bitstream, preferably with some compression algorithm since you forfeited legibility already, and then assigning an alphanumeric symbol for each possible 6-bit sequence. Note that this leaves 4 alphanumeric symbols you never use — you could reclaim them if you really cared about length, but it hardly seems worth the complication.
I'll ignore the "crypto" word in the topic, since you don't seem all that interested in making the scheme difficult to uncover.