当前位置: 首页 > 知识库问答 >
问题:

在laravel上使用Https的API路由提供404

范安歌
2023-03-14

我创建了一个Laravel API。

首先,它使用HTTP,我需要将其更改为使用https。

所以我在Cloudflare上创建了一个帐户,从那以后,当我转到我的APIendpoint时:

获取: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);
    }

我尝试过这样的解决方案:

强制Laravel使用HTTPS版本

如何在laravel 5.4中实现HTTPS

共有2个答案

邵轶
2023-03-14

首先尝试输入以获取路由,如果您有403或404,问题是nginx配置,请查看日志,如果问题是未找到索引。public_html中的html是nginx或apache2的根配置

apache2在/etc/apache2/sites中启用了te配置/并启用了您的域。conf当您在站点中激活ssl时,问题可能是站点生成另一个conf文件,如您的域。ssl。这个文件看起来像

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*
寇宏义
2023-03-14

这是来自Web服务器的404,而不是来自laravel。我猜您忘记将Vhost配置中声明的端口从80更改为443

Cloudflare示例:

<VirtualHost *:443>
    ServerName.....

 类似资料:
  • 我在routes.php中定义了一个简单的路由,位于任何路由之上: 当通过http访问时,它可以工作,但它提供: 当我试图通过https访问时。 我在网上搜索了很多,但没有找到任何解决方案。 我的主页正在加载超文本传输协议和https,但其他路由不工作。我需要一些额外的配置吗? 编辑: .htaccess: 请引导我。 塔克斯。

  • 我有一个在heroku上运行的Laravel 5.2应用程序,它有一个由Cloudflare处理的自定义域。自定义域使用CNAME将其指向heroku域。我已经在Cloudflare上启用了完全ssl以允许https。heroku url本身已启用ssl,因此这没有问题。 当生成路由时(例如,通过类似于的方式),它包含整个自定义域,但使用而不是。这通常会导致浏览器控制台发出类似这样的警告: 混合内

  • 我刚刚开始学习laravel,我正在使用MAMP。我在这个url上有一个表单:http://localhost:8888/laravel-site/my new app/public/ducks但当我提交表单时,它会将我带到此url:http://localhost:8888/ducks不会停留在我期望的地方。 routes.php文件包含以下内容: 在我的生活中。htaccess文件我有这个:

  • 我在不同的帖子上遇到了类似的问题,但它们对我来说毫无用处(没有答案或没有有用的答案)。我将在这里描述所有细节,并希望得到帮助。 我使用java8,spring boot 2.0.3,spring云元素基于Finchley。发布版本。 在我的test micro services应用程序中,我有下一个服务:配置服务器、发现服务(Eureka)、边缘服务(zuul)、卡服务。所有服务在启动时从配置服务

  • 问题内容: 我是AngularJS的新手,正在尝试调试一些路由,但是我不知道如何显示/查看传递给routeprovider的路由。 例如,如果我当前的路由设置如下: 调试时,我想破坏代码,并在控制台日志中输入类似内容; 以显示将由“ .when”评估的路线。 问题答案: 您可以收听发出的多个事件。这些事件是: 和, (我鼓励阅读链接提供的文档,以获取每个文件的描述。) 此时,您可以在一个控制器或指

  • 作为一个 web 后台框架,路由无疑是极其重要的一部分。本博客接下来几篇文章都将会围绕路由这一主题来展开讨论,分别讲述: 路由的使用 路由属性注册 路由的正则编译与匹配 路由的中间件 路由的控制器与参数绑定 RESTful 路由 和之前一样,第一篇将会利用单元测试样例说明我们在平时可能用到的 route 的 api 函数用法,后面几篇文章将会剖析 laravel 的 route 源码。下面开始介绍