簡體   English   中英

Laravel 4-路由到除www外的子域

[英]Laravel 4 - Route to subdomain except www

目前,我有一個到子域的路由組,另一個到主站點的路由組,如下所示:

Route::group(array('domain' => '{subdomain}.mysite.dev'), function() {
    // Subdomain routes
    Route::get('/', array('as' => 'home', 'uses' => 'SubdomainController@showHome'));
});

// Main
Route::get('/', array('as' => 'home', 'uses' => 'PublicController@showHome'));

到目前為止,對於“ mysite.dev”和“ stuff.mysite.dev”或任何其他子域來說,它都可以正常工作。 問題在於它假定“ www”(如“ www.mysite.dev”中的)作為子域,因此我需要將其解釋為主站點。

感謝itachi的回應,我提出了以下建議:

Route::pattern('subdomain', '^((?!www).)*$');

將此行添加到routes.php的頂部,使“子域”匹配除“ www”以外的任何其他內容。

最終形式:

Route::pattern('subdomain', '^((?!www).)*$');

Route::group(array('domain' => '{subdomain}.mysite.dev'), function() {
    // Subdomain routes
    Route::get('/', array('as' => 'home', 'uses' => 'SubdomainController@showHome'));
});

// Main site routes (works for mysite.dev and www.mysite.dev)
Route::get('/', array('as' => 'home', 'uses' => 'PublicController@showHome'));
Route::pattern('subdomain','dev|test|mobile'); <---- add your subdomains

Route::group(array('domain' => '{subdomain}.mysite.dev'), function() {
    // Subdomain routes
    Route::get('/', array('as' => 'home', 'uses' => 'SubdomainController@showHome'));
});

// Main
Route::get('/', array('as' => 'home', 'uses' => 'PublicController@showHome'));

只需添加第一行,您就完成了!

1)您可以使用.htaccess將www重定向到非www

2)檢查http://laravel.com/docs/routing是否存在正則表達式約束,因此在路由的末尾添加-> where('subdomain','!www'); (未經測試)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM