URL中的%2F中断并且不引用所需的.php文件

时间:2012-02-09 07:16:52

标签: php apache url

我需要将/作为变量作为URL的一部分传递。

我的结构如下: www.domain.com/listings/page-1/city-Burnaby+South/type-Townhome/bedroom-2/bathroom-2

在这种情况下,它最终归结为listing.php,除此之外的所有内容都成为我的PHP脚本使用$ _SERVER ['REQUEST_URI'] var解析的参数。

然而,当生成URL时,当其中一个变量变为“公寓/公寓”并且/通过urlencode()在PHP中变为%2F时,整个事情会窒息并且我得到“未找到”错误。

如何通过/不破坏URL?我错过了什么?我认为这些urlencode()字符(%2F,%20等)的重点是逃避这些问题。

2 个答案:

答案 0 :(得分:38)

包含%2f /%5c \的网址会从Apache返回 404 出于安全目的。

您可以修改Apache配置以启用AllowEncodedSlashes OnNoDecode。请记住,这可能会引入意外的安全问题,而这个“功能”旨在减轻这种问题。

Apache docs:http://httpd.apache.org/docs/current/mod/core.html#allowencodedslashes

解决:

这个也让我了 - 谢谢你的问题

答案 1 :(得分:-3)

您同样可以urldecode();