设置子域名 - AWS& Laravel

时间:2015-12-27 14:45:17

标签: php apache .htaccess amazon-web-services laravel-5

我正在慢慢使用Laravel将我的网站迁移到工匠时代。 我在一个vanilla Amazon linux上的AWS上设置了它。

目前我有; www.example.co.uk blog.example.co.uk careers.example.co.uk

这些都在同一台服务器上,并且使用htaccess\blog中的\careersroot文件夹重定向到DNSRoute 53laravel

处理

现在转移到public它只考虑htaccess文件夹(DocumentRoot使用不再需要除了它附带的默认文件夹)所以我有/var/www/example/publicroutes。一切都很棒!为我的主站点设置了一堆hhtpd.conf并且仍然顺利航行。

现在转到子域名,我的<VirtualHost *:80> ServerName blog.example.co.uk ServerAdmin webmaster@blog.example.co.uk DocumentRoot /var/www/example/public <Directory /var/www/example/public> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ErrorLog /var/log/blog.example.co.uk.error.log LogLevel warn CustomLog /var/log/blog.example.co.uk.access.log combined </VirtualHost>

中有以下内容
Laravel

正如您所看到的,我将子域指向同一个公用文件夹,因为blog.example.co.uk应该能够看到Route::group(['domain' => 'blog.example.co.uk'], function () { Route::get('/', 'BlogController@home')->name('blog-home'); Route::get('review', 'BlogController@review')->name('blog-review'); Route::get('author/{id}', 'BlogController@author')->name('blog-author')->middleware('blogGuard'); Route::get('category/{id}', 'BlogController@category')->name('blog-category')->middleware('blogGuard'); Route::get('post/{id}', 'BlogController@post')->name('blog-post')->middleware('blogGuard'); Route::get('press', 'BlogController@press')->name('blog-press'); Route::get('about', 'BlogController@about')->name('blog-about'); }); 被请求并执行其职责才能正确路由。

我有以下子域名路由

blog.example.co.uk

不幸的是,转到www.example.co.uk仍假设我请求blog.example并使用主站点的逻辑路由。因此www.example指向'{blog}.example.co.uk'

我还使用了{{1}}

请问我做错了什么 干杯!

1 个答案:

答案 0 :(得分:0)

看起来这是路由操作顺序的问题,它在路由到达子域路由组之前匹配路由。您应该将所有内容放入其自己的路由组中,这应该可以解决问题。作为替代方案,您可以确保未分组的路线低于您的分组路线,这也可能解决问题。