How to pass slash / in an URL?
On this page there are many abbreviation / acronym entries: http://abbreviations.wordcrow.com/acronyms/D/
They are generated in PHP:
<a href="/define/<?php echo rawurlencode($abbreviation['title'])?>/">
<strong><?php echo $abbreviation['title']?></strong>
</a>
I used rawurlencode
because many acronyms contain bizarre characters such as #开发者_JAVA百科
, &
and even /
.
And the URL requests such as:
http://abbreviations.wordcrow.com/define/DA%26E/
Would first be fed to rawurldecode()
:
$acronym = rawurldecode('DA%26E'); // $acronym would be 'DA&E'.
And then used in database queries.
While DA&E
is all right, DA/C
is not. Try this URL http://abbreviations.wordcrow.com/define/DA%2FC/ and you would end up with http://abbreviations.wordcrow.com/define/DA/C/ which is an error page.
I can extend more code to recognize /define/DA/C/
but it's just weird and non-sensible. I tried both Chrome and Firefox and they all automatically convert DA%2FC
to DA/C
. But with DA%26E
, they don't.
What am I doing wrong?
While you need to do what you need to do -
An option i finally used when AllowEncodedSlashes On didn't work was found here... (using slugs) - not only faster on the lookup/creation of them, but it [main point] solved my situation faster and had more 'url juice' :).
Found originally here:
http://snipplr.com/view/2809/convert-string-to-slug/
Used the modified here [used in my own files]:
http://www.finalwebsites.com/forums/topic/convert-string-to-slug
精彩评论