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

时间:2015-01-20 03:18:34

标签: php laravel

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

*.mysitename.com. A 54.123.123.123

我的conf文件

<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();
}

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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