求解!laravel配置https后的异常情况!

已完成ssl证书安装
已配置好URL::forceScheme('https');

测试访问https
如果访问主目录 '/',则可以正常访问网站首页。
但是想要访问其他路由时,例如访问'/blog'时,就会返回
The requested URL /blog was not found on this server.

也尝试了在路由中直接使用https,例如:
Route::get('/blog',['uses'=>'BlogController@index','https']);
还是报一样的错误,找不到URL。

网站找很多配置方法,测试都不行,希望这里有大神能指点一下!!

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 6
location / {
     try_files $uri $uri/ /index.php?$query_string;
}

这个nginx配置没有添加吧?猜测

3年前 评论
acvc225 (楼主) 3年前

你看看是不是你nginx的配置文件没有解析URI的路径。相同的配置文件你换成http试试,如果也不能访问就是nginx的URI配置问题。

3年前 评论
acvc225 (楼主) 3年前

应该是 apache 配置的问题,laravel 中配置不是必要的。

3年前 评论
acvc225 (楼主) 3年前

你把服务器的配置晒出来看看,还有服务器的请求日志

3年前 评论
acvc225 (楼主) 3年前

找到原因了,我也是醉了。。。

之前因为在www下面放了几个项目,为了配置域名直接指向blog目录,就把laragon的文件根目录配置到项目下面的public里去了,所以一直导致https只能访问‘/’这个根目录的路由,而不能访问其他带任何子目录的路由。

解决办法就是将laragon的文件根目录改回到www目录下,这样https就能正常使用路由了。
同时,访问http就得要在域名后面加项目路径,例如这里访问同样的项目,就得访问http://www.yuming.com/blog/public

关于laragon的https配置,基本都在配置文件httpd-ssl.conf中,目录是:C:\laragon\bin\apache\httpd-2.4.35\conf\extra
主要配置参数如下:

DocumentRoot "C:/laragon/www/blog/public/"
ServerName 你的域名.com:443
ServerAdmin admin@localhost
SSLCertificateFile "C:/laragon/etc/httpd/ssl/你的证书_public.crt"
SSLCertificateKeyFile "C:/laragon/etc/httpd/ssl/你的密钥.key"
SSLCertificateChainFile "C:/laragon/etc/httpd/ssl/你的证书_chain.crt"

#日志文件也应该要配置到正确的路径
ErrorLog "C:/laragon/bin/apache/httpd-2.4.3/logs/error.log"
TransferLog "C:/laragon/bin/apache/httpd-2.4.35/logs/access.log"

可能还需要注释掉apache默认的ssl配置

#DocumentRoot "${SRVROOT}/htdocs"
#ServerName www.example.com:443
#ServerAdmin admin@example.com
#ErrorLog "${SRVROOT}/logs/error.log"
#TransferLog "${SRVROOT}/logs/access.log"

#SSLCertificateFile "${SRVROOT}/conf/server.crt"
#SSLCertificateKeyFile "${SRVROOT}/conf/server.key"
3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!