Reputation: 1748
Having problem with subdomains :(
In Routes:
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');
});
When I go to app.me or www.app.me it shows the SiteController@index If I go to agent.app.me it shows AgentController@index
But the problem is if I go to platform.app.me it redirects to app.me
How to solve this?
In cPanel a managed redirections like this:
Subdomains.Root Domain Document Root Redirection
agent.app.me /public_html not redirected
platform.app.me /public_html not redirected
Upvotes: 0
Views: 855
Reputation: 462
Try changing the order. The first matched route will always be the one used. Also, if app.me is just going to use the same routes as www., why not use htaccess to force www. and have one less route group to maintain?
So, 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');
});
Notice that I changed your use of array()
to []
in the agent.app.me
route group for consistency as you were mixing the two.
And .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>
Upvotes: 3