使用https找不到Laravel路线

时间:2016-04-21 05:07:09

标签: php http https laravel-5.2

我在routes.php中定义了一条在任何路线上的简单路线:

Route::get('/test', function () {
echo 'hello';
});

通过http访问时它正在工作,但它给出了:

The requested URL /test was not found on this server.

当我尝试通过https访问时。

我在互联网上搜索了很多,但找不到任何解决方案。

我的主页面加载了http和https,但其他路由无效。我需要一些额外的配置吗?

修改

htaccess的:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On


    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]


</IfModule>

请指导我。

感谢名单。

3 个答案:

答案 0 :(得分:2)

  • 更新const rp = require('request-promise'); module.exports = async function (context, req) { const options = { url: 'https://api.twilio.com/2010-04-01/Accounts/AC7f9cc91207db898bb0ddee8e09d707b5/Calls.json', method: 'POST', auth: { 'user': 'AC7f9cc91207db898bb0ddee8e09d707b5', 'pass': '9b96d9f573a7bbcadce5fa88eced3b66' } }; const response = await rp(options); context.res = { status: 200, body: response }; }; 文件中的APP_URL,使其以.env而不是https://开头:

    http://

  • 将此添加到SSL Apache配置(在Ubuntu:APP_URL=https://yourserver.com上):

default-ssl.conf

答案 1 :(得分:1)

我遇到了同样的问题,我通过修改我的.htaccess文件解决了这个问题。通常这是我们的重写模块的问题。 试试这个希望它适合你。

 <IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

还要确保文件夹结构在本地服务器和生产服务器上匹配。

答案 2 :(得分:0)

如果有人在Laravel中遇到无限循环问题,那么有解决方案:

RewriteEngine On

# If we receive a forwarded http request from a proxy...
RewriteCond %{HTTP:X-Forwarded-Proto} =http [OR]

# ...or just a plain old http request directly from the client
RewriteCond %{HTTP:X-Forwarded-Proto} =""
RewriteCond %{HTTPS} !=on

# Redirect to https version
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]