最近的想法挺多的,又想做这个又想做那个.但是碰到一个很难受的问题就是:
所以对我来说,眼下最要紧的事,就是先整理好代码,然后开发出一套属于自己的本地化管理工具.
这个工具目前暂定为Laravel进行开发.采用的是前后端分离的策略,以便日后多端可以有相应的api进行使用.
然后我也不是特别喜欢多开好几个Laravel进行开发,所以一个Laravel框架中,同时包含多域名也是成为一个主要的问题之一.
今天我就好好的记录下,我用Laravel在本地化进行多域名的设置.其实架设到其他的系统其实都差不多的.
目前决定先分为两个域名.
一个是API的接口域名,我定为: api.hellolux.com
一个是后台管理域名,我定为: admin.hellolux.com
在app\Http\Controllers目录下,新增两个文件夹,分别为Api和Admin.
在app\Providers\RouteServiceProvider.php中,修改
# 新增项目名称的命名空间
protected $AdminNamespace = 'App\Http\Controllers\Admin';
protected $ApiNamespace = 'App\Http\Controllers\Api';
public function map()
{
# 根据项目名称定义路由
$this->mapApiRoutes();
$this->mapAdminRoutes();
}
# 新增两个方法
protected function mapAdminRoutes()
{
Route::group([
'domain' => config('app.admin_domain'),
'namespace' => $this->AdminNamespace,
], function ($router) {
require base_path('routes/admin.php');
});
}
protected function mapApiRoutes()
{
Route::group([
'domain' => config('app.api_domain'),
'namespace' => $this->ApiNamespace,
], function ($router) {
require base_path('routes/api.php');
});
}
'api_domain' => env('API_DOMAIN', 'api.hellolux.com'),
'admin_domain' => env('ADMIN_DOMAIN', 'admin.hellolux.com'),
API_DOMAIN=api.hellolux.com
ADMIN_DOMAIN=admin.hellolux.com
# api.php
use Illuminate\Http\Request;
Route::get('/', "IndexController@index");
# admin.php
use Illuminate\Http\Request;
Route::get('/', "IndexController@index");
# Local_Manage
127.0.0.1 api.hellolux.com
127.0.0.1 admin.hellolux.com
Include /private/etc/apache2/extra/httpd-vhosts.conf
ServerAdmin [email protected]
DocumentRoot "/Users/hellolux/Documents/Github/Local_Manage/public"
ServerName hellolux
ServerAlias *.hellolux.com
ErrorLog "/Users/hellolux/Documents/Github/Local_Manage/logs/error.log"
CustomLog "/Users/hellolux/Documents/Github/Local_Manage/logs/access.log" common
sudo apachevtl restart
浏览器打开admin.hellolux.com和api.hellolux.com分别会显示具体的页面了.