Laravel 将 www 视为带有通配符子域的默认值

Laravel treat www as default with wildcard subdomain

我刚刚在我的服务器上设置了我的子域路由,将 A 记录添加到 Route53。

*.mysitename.com. A 54.123.123.123

我的配置文件

<VirtualHost *:80>
    DocumentRoot "/var/www/html/mysitename/public"
    ServerName mysitename.com
    ServerAlias mysitename.com *.mysitename.com
    <Directory "/var/www/html/mysitename/public">
        Options +FollowSymLinks -MultiViews
        AllowOverride all
    </Directory>
</VirtualHost>

我的问题是如何让 mysitename.com 工作,并且 www.mysitename.com 被视为 mysitename.com 而不是由我的子域路由处理?

Route::group(array('domain' => '{name}.mysitename.com'), function() {
    Route::get('/', 'ObjectsController@showObject');
});

当我转到 www.mysite.com 时,它正在将 www 作为参数传递给 ObjectController

public function showObject ($name) {
    return Object::whereName($name)->get();
}

我会创建仅匹配 www.mysitename.com 的新路由,并将其放在匹配任何子域的路由组之前。

您可以使用以下方法去除 apache 中的 www:

RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ http://example.com/ [R=301,L]