[英]API routes using Https on laravel gives 404
我创建了一个Laravel API 。
首先,它使用的是 HTTP,我需要将其更改为使用 https。
所以我在 Cloudflare 上创建了一个帐户,从那时起,当我转到我的 API 端点时:
获取: 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);
}
我尝试过这样的解决方案:
这是来自您的Web server
的 404,而不是来自您的laravel
。 我猜您忘记将 Vhost 配置中声明的端口从80
更改为443
。
Cloudflare 示例:
<VirtualHost *:443>
ServerName.....
首先尝试进入GET路由,如果你有403或404,则是nginx配置的问题,查看日志,如果问题是在public_html中没有找到index.html是你的nginx或apache2的root配置
当您在站点中激活 ssl 时,Apache 2 在 /etc/apache2/sites-enabled/ 和 your-domain.conf 中有 te 配置,问题可能是该站点生成另一个 conf 文件,例如 your-domain.ssl.conf这个文件看起来像
ServerName domain.com
ServerAlias www.domain.com
ServerAdmin info@domain.com
DocumentRoot /home/admin/web/domain.com/public_html/public <----- here is the change
ScriptAlias /cgi-bin/ /home/admin/web/pdomain.com/cgi-bin/
Alias /vstats/ /home/admin/web/domain.com/stats/
Alias /error/ /home/admin/web/domain.com/document_errors/
#SuexecUserGroup admin admin
CustomLog /var/log/apache2/domains/domain.com.bytes bytes
CustomLog /var/log/apache2/domains/domain.com.log combined
ErrorLog /var/log/apache2/domains/domain.com.error.log
<Directory /home/admin/web/domain.com/public_html>
AllowOverride All
SSLRequireSSL
Options +Includes -Indexes +ExecCGI
php_admin_value open_basedir /home/admin/web/domain.com/public_html:/home/admin/tmp
php_admin_value upload_tmp_dir /home/admin/tmp
php_admin_value session.save_path /home/admin/tmp
</Directory>
<Directory /home/admin/web/domain.com/stats>
AllowOverride All
</Directory>
SSLEngine on
SSLVerifyClient none
SSLCertificateFile /home/admin/conf/web/ssl.domain.com.crt
SSLCertificateKeyFile /home/admin/conf/web/ssl.domain.com.key
SSLCertificateChainFile /home/admin/conf/web/ssl.domain.com.ca
<IfModule mod_ruid2.c>
RMode config
RUidGid admin admin
RGroups www-data
</IfModule>
<IfModule itk.c>
AssignUserID admin admin
</IfModule>
IncludeOptional /home/admin/conf/web/sapache2.domain.com.conf*
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.