gpt4 book ai didi

php - 请求带有编码参数的 URI 时找不到 404

转载 作者:搜寻专家 更新时间:2023-10-31 21:18:42 25 4
gpt4 key购买 nike

我很确定这是 Apache 配置的一些问题,因为它曾经在具有相同 PHP/MySQL 配置的以前的托管服务提供商上工作。在我的应用程序中,用户可以通过转到这样的 URI 来删除照片:

http://example.com/my-account/remove-media/id/9/ret/my-account%252Fedit-album%252Fid%252F1

参数 id 是要删除的照片的 id,参数 ret 是一个相对 URL,在删除照片后用户应该被重定向,但是在点击这样的链接后我得到 404 Not Found 错误文本:

Not Found

The requested URL /public/my-account/remove-media/id/9/ret/my-account/edit-album/id/1 was not found on this server.

虽然它曾经在我以前的托管服务提供商上工作,所以我猜这只是一些简单的 Apache 配置问题?

还有一件事,有一个 htaccess 文件将文档根目录更改为/public:

RewriteEngine On

RewriteRule ^\.htaccess$ - [F]

RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]

RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]

RewriteRule ^public/.*$ /public/index.php [NC,L]

在公共(public)文件夹中有第二个 MVC 的 htaccess 文件:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]

最佳答案

这可能是由于 AllowEncodedSlashes指令被设置为关闭。坏消息是,它是在服务器级别配置的,所以 .htaccess 不会。如果您不能更改它,那么我认为修改应用程序代码以处理非编码字符串是可行的方法。

.../ret/my-account%252Fedit-album%252Fid%252F1 -> .../ret/my-account/edit-album/id/1

如果/ret/部分总是最后一个,那应该不是什么大问题(ret 之后的所有内容都是您的目的地)。

关于php - 请求带有编码参数的 URI 时找不到 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2651931/

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