子域名存在问题:(
在路线中:
Route::group(['domain' => 'www.app.me'], function(){
Route::get('/', 'SiteController@index');
Route::get('/{uri}', 'ShortnerController@redirect');
});
Route::group(['domain' => 'app.me'], function(){
Route::get('/', 'SiteController@index');
Route::get('/{uri}', 'ShortnerController@redirect');
});
Route::group(['domain' => 'platform.app.me'], function(){
Route::get('/', 'PageController@index')->before('auth');
});
Route::group(array('domain'=>'agent.app.me'), function(){
Route::get('/', 'AgentController@index')->before('auth');
});
当我去app.me或www.app.me时,它会显示SiteController @ index 如果我去agent.app.me,它会显示AgentController @ index
但问题是,如果我转到platform.app.me,它会重定向到app.me
如何解决这个问题?
在cPanel中,托管重定向如下:
Subdomains.Root Domain Document Root Redirection
agent.app.me /public_html not redirected
platform.app.me /public_html not redirected
答案 0 :(得分:3)
尝试更改订单。第一个匹配的路线将始终是使用的路线。此外,如果app.me只是使用与www。相同的路线,为什么不使用htaccess强制www。并维持一个较少的路线组?
所以,routes.php:
Route::group(['domain' => 'platform.app.me'], function(){
Route::get('/', 'PageController@index')->before('auth');
});
Route::group(['domain'=>'agent.app.me'], function(){
Route::get('/', 'AgentController@index')->before('auth');
});
Route::group(['domain' => 'www.app.me'], function(){
Route::get('/', 'SiteController@index');
Route::get('/{uri}', 'ShortnerController@redirect');
});
请注意,我在array()
路由组中将[]
的使用更改为agent.app.me
,以确保您将两者混合使用时保持一致。
和.htaccess:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
# Enforce www where not using www or a valid sub domain or tld
RewriteCond %{HTTP_HOST} !^(www|agent|platform)\.app\.(me|dev)$ [NC]
RewriteRule ^(.*)$ http://www.app.me/$1 [L,R=301]
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>