我正在慢慢使用Laravel将我的网站迁移到工匠时代。
我在一个vanilla Amazon linux上的AWS
上设置了它。
目前我有;
www.example.co.uk
blog.example.co.uk
careers.example.co.uk
这些都在同一台服务器上,并且使用htaccess
将\blog
中的\careers
和root
文件夹重定向到DNS
并Route 53
由laravel
现在转移到public
它只考虑htaccess
文件夹(DocumentRoot
使用不再需要除了它附带的默认文件夹)所以我有/var/www/example/public
为routes
。一切都很棒!为我的主站点设置了一堆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}}
请问我做错了什么 干杯!
答案 0 :(得分:0)
看起来这是路由操作顺序的问题,它在路由到达子域路由组之前匹配路由。您应该将所有内容放入其自己的路由组中,这应该可以解决问题。作为替代方案,您可以确保未分组的路线低于您的分组路线,这也可能解决问题。