[英]laravel 5.5 - wildcard subdomain not working
我将laravel应用程序上传到Apache
共享托管服务器中,一切设置正常。 我已经设置了CNAME记录*
子域,并将其指向public_html/
。 然后我在我的routes/web.php
设置此代码:
Route::domain('{subdomain}.example.com')->group(function () {
Route::get('/', function ($subdomain) {
Route::get('/profiles/sub/{subdomain}', 'ProfilesController@subDomain');
});
});
其中ProfilesController@subDomain
是用于处理URL
中的参数subdomain
的函数。 但是结果一直将我发送到主登陆页面。 我注意到有此错误:
未捕获(承诺)DOMException:仅允许安全来源
我不确定这是否与任何部分有关。
我该如何解决?
Update01
按照Ben的评论,我使用下面的.htaccess
force SSL
:
<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>
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</ifmodule>
它将http
强制为https
。 但是,每当我测试xxx.example.com
子域时,Chrome都会给出一条隐私错误消息,然后将其更改回:
和新的错误信息:
提取脚本时发生SSL证书错误。
提醒一下,我正在尝试解决此处的通配符子域问题。 如果不是所有这些SSL
的真正原因,我们都可以忽略。
我认为应该
Route::domain('{subdomain}.example.com')->group(function () {
Route::get('/', 'ProfilesController@subDomain');
});
并在ProfilesController
:
public function subdomain($subdomain) {
//do something
}
而且,正如讨论的那样,路由的顺序很重要,因此,如果在此逻辑之前有一个声明为'/'
的路由,它将始终先命中它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.