php - 在 laravel 上使用 Https 的 API 路由给出 404
问题描述
我创建了一个Laravel API。
首先,它使用的是 HTTP,我需要将其更改为使用 https。
因此,我在 Cloudflare 上创建了一个帐户,从那时起,当我访问我的 API 端点时:
GET:https ://www.traapp.tk/api/data/20190809它给出了 404:
未找到
在此服务器上未找到请求的 URL /api/data/20190809。
此外,在尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。
我也有一个 POST 请求,它返回一个 404。
.htacces
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
api.php
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
Route::get('data/{date}', 'MainController@index');
Route::post('route', 'MainController@getAllRoutesOfACertainDay');
MainController
public function index ($date) {
$responseServer = json_decode($this->makeRequest(str_replace('DATE', $date, env('BASE_URL') . env('SCHEDULES'))),true);
return $this->respond($responseServer);
}
我尝试了这样的解决方案:
解决方案
那是您的 404,Web server
而不是您的laravel
. 我猜您忘记将 Vhost 配置中声明的端口从80
更改为443
。
Cloudflare 示例:
<VirtualHost *:443>
ServerName.....
推荐阅读
- ios - NavigationLink 只能使用一次
- python - 通过仅跳过空白行来读取 excel 文件 (pd.read_excel())
- c# - MatriX vNext 在 Android 中无法连接
- angular - 使用 Ionic 4 和 Electron Desktop 将文件保存在文件夹中
- typescript - 打字稿:如何增加`export = Joi.Root`
- oracle - 如何将 INSTR (Oracle) 转换为 STRPOS (PostgreSQL)?
- amqp - 如何使用 .NET 客户端应用程序使用 AMQPNetLite 设置 PRE_ACKNOWLEDGE 模式
- crossfilter - 如何在 amCharts 的简单柱形图中实现多项选择
- php - 使用 PHP 的不同值
- vb6 - 需要旧的 Sheridan Data Widget Controls 3.13