这是PHP。
I do
header("Location: " . $url)
并且效果很好。但如果我这样做
header("Location: " . urlencode($url))
我被重定向到一些奇怪的地方,比如 $url/$url ,当然,它给了我一个 404 错误。
但我确实想对我的网址进行 urlencode,因为它是由用户提供的数据组成的。我该怎么做?我可以将其分解为“http://”和“其余部分”并且仅对“其余部分”进行urlencode吗?
在这种情况下,建议采取哪种做法?
Thanks
但我确实想对我的网址进行 urlencode,因为它是由用户提供的数据组成的
解决方案是不要对完整的 URL 进行编码,仅对需要编码的位进行编码。仅仅对“其余部分”进行编码也必然会失败。例如,在此示例中,所有斜杠、?
和=
必须保持完整:
http://www.example.com/rewritten directory/index.php?id=Hello World, how are you?
但你确实需要编码rewritten directory
and Hello World, how are you?
为了让整个事情形成一个有效的 URL。
与字符编码一样,您需要从一开始就确保知道什么是如何编码的。您的问题的解决方案(如果有的话 -header()
首先可能不需要 urlencode() 就可以工作!)可能会在您的代码中更靠前。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)