无效的查询网址返回 200 而不是 404

问题描述 投票:0回答:1

当我请求包含无效查询的页面时,我的 PHP 网站没有返回 404 错误。

例如, 如果我调用 https://somedomain.com/index.php,它会返回状态为 200 的页面。

但是,如果我致电 https://somedomain.com/index.phppppp,我会收到 404。

打电话时出现问题

https://somedomain.com/index.php?q=123 或者 https://somedomain.com/index.php?abcdefg

在这两种情况下,我都会收到 200 状态以及以下内容 https://somedomain.com/index.php.

令人惊讶的是,浏览器控制台中没有任何错误。

所有页面都存在此问题。 我预计会收到 404 状态来触发 404 页面的显示,但服务器在这些情况下不会抛出 404。

php .htaccess http-status-code-404
1个回答
-1
投票

我之前遇到过类似的问题,它可能与服务器端 SSL/TLS 配置的更改有关。您可以采取以下几个步骤来排除故障并可能解决问题:

  1. 检查 cURL 版本: 确保您使用的 cURL 版本支持最新的 SSL/TLS 协议。您可以使用以下方式检查您的 cURL 版本:

    php -i | grep 卷曲

如果是过时的版本,请考虑更新到最新版本。

  1. 指定 SSL 版本:

尝试在 cURL 选项中明确指定 SSL 版本。将以下行添加到您的代码中:

curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
  1. 检查密码套件:

某些服务器可能需要特定的密码套件。您可以使用以下方式设置密码:

curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'ECDHE-RSA-AES128-GCM-SHA256');
  1. 验证证书:

如果您的服务器需要验证,请务必指定 CA 证书捆绑路径:

curl_setopt($ch, CURLOPT_CAINFO, '/path/to/ca-bundle.crt');

检查服务器日志: 查看服务器日志中是否有任何与 SSL/TLS 相关的错误。这可能会提供对该问题的更多见解。

请记住单独测试每个步骤,看看是否可以解决问题。如果问题仍然存在,请提供有关您的服务器环境、cURL 版本以及您最近对系统所做的任何更改的更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.