【发布时间】:2018-02-12 01:14:17
【问题描述】:
我将我的 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 的函数。但结果一直把我送到主着陆页。我注意到有这个错误:
Uncaught (in promise) DOMException: Only secure origins are allowed
我不确定这是否与任何部分有关。
我该如何解决这个问题?
更新01
根据 Ben 的评论,我 force SSL 和下面的 .htaccess:
<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不是真正的原因,我们可以忽略它。
【问题讨论】:
-
你的服务器有
SSL证书吗? -
是的。我可以使用
http://和“https://”。两者都将指向同一个页面。 -
所以您的证书有效?也许你应该强制使用 ssl...
-
@BenDubuisson 你是什么意思?
-
是的,实际上我认为您的 JS 错误与它没有任何关系...