gpt4 book ai didi

php - 使用 PHP 编码(相对)URL 的正确方法

转载 作者:可可西里 更新时间:2023-10-31 23:50:18 25 4
gpt4 key购买 nike

我正在尝试使用 PHP 对以下相对 URL 进行编码:

/tracks/add/5449326

我试过使用 rawurlencode 和 urlencode。

这让它看起来像:%2Ftracks%2Fadd%2F5449326

我将在 AJAX 调用中使用此 URL。

我尝试调用的 URL 是:

/overlay/add-track/{param1}/{param2}

{param1} 只是一些 id

{param2} 是编码后的url

但是,当我尝试调用电话时,我收到了 404。

从外观上看,它正在尝试调用:

/overlay/add-track/1//tracks/add/5449326

所以看起来它正在尝试访问解码后的字符串。

有什么办法解决这个问题吗?

PHP

$url = rawurlencode('/tracks/add/5449326');    
echo '<a href="/overlay/add-track/1/'.$url.'">Add</a>';

JS (jQuery) var href = $('a').attr('href');

$.ajax({
url: href,
type: 'POST',
data: {},
dataType: "json",
success: function(data)
{
// do stuff
}
});

编辑

  RewriteEngine on

RewriteCond %{REQUEST_FILENAME} \.(eps|js|ico|gif|jpg|png|css|jpeg|doc|xls|doc|pdf|txt|ppt|zip)$
RewriteRule ^(.*)$ $1 [L]

RewriteCond "/path/public/%{REQUEST_URI}" !-f
RewriteRule ^(.*)$ /index.php/$1 [L]

最佳答案

网络服务器可能不允许编码的斜杠,导致默认 404。

对于 apache,请参阅:

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

要么需要更改 apache 配置,要么您需要通过将斜杠/反斜杠替换为其他内容来解决它。

编辑:您可以尝试使用双 urlencode,然后在 javascript 中使用 decodeURI()。

关于php - 使用 PHP 编码(相对)URL 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6244000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com