如何在URL中传递斜杠/?

时间:2011-05-18 07:45:53

标签: php http url

在此页面上有许多缩写/首字母缩略词条目:http://abbreviations.wordcrow.com/acronyms/D/

它们是在PHP中生成的:

<a href="/define/<?php echo rawurlencode($abbreviation['title'])?>/">
    <strong><?php echo $abbreviation['title']?></strong>
</a>

我使用rawurlencode,因为许多首字母缩略词包含奇怪的字符,例如#&甚至/

以及URL请求,例如:

  

http://abbreviations.wordcrow.com/define/DA%26E/

首先会被送到rawurldecode()

$acronym = rawurldecode('DA%26E'); // $acronym would be 'DA&E'.

然后用于数据库查询。

虽然DA&E没问题,但DA/C却没有。试试这个网址http://abbreviations.wordcrow.com/define/DA%2FC/,最终会得到http://abbreviations.wordcrow.com/define/DA/C/,这是一个错误页面。

我可以扩展更多代码以识别/define/DA/C/,但这只是奇怪而且不合理。我尝试了 Chrome Firefox ,它们都会自动将DA%2FC转换为DA/C。但是DA%26E,他们没有。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

虽然你需要做你需要做的事情 -

当AllowEncodedSlashes On无法正常工作时我最终使用的选项在这里找到...(使用slugs) - 不仅更快地查找/创建它们,而且它[主要点]更快地解决了我的情况并拥有更多'url juice':)。

原来在这里找到:

http://snipplr.com/view/2809/convert-string-to-slug/

使用修改后的[在我自己的文件中使用]:

http://www.finalwebsites.com/forums/topic/convert-string-to-slug