我需要将/作为变量作为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等)的重点是逃避这些问题。
答案 0 :(得分:38)
包含%2f /
或%5c \
的网址会从Apache
返回 404 出于安全目的。
您可以修改Apache配置以启用AllowEncodedSlashes On
或NoDecode
。请记住,这可能会引入意外的安全问题,而这个“功能”旨在减轻这种问题。
Apache docs:http://httpd.apache.org/docs/current/mod/core.html#allowencodedslashes
解决:
这个也让我了 - 谢谢你的问题
答案 1 :(得分:-3)
您同样可以urldecode();