求解!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 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6

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

2周前 评论
acvc225 (楼主) 2周前
location / {
     try_files $uri $uri/ /index.php?$query_string;
}

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

2周前 评论
acvc225 (楼主) 2周前

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

2周前 评论
acvc225 (楼主) 2周前

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

2周前 评论
acvc225 (楼主) 2周前

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

之前因为在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"
2周前 评论

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