[英]How to generate proper links using Laravel subdomain routing?
我正在嘗試將動態子域路由添加到項目中。 我遇到的問題是在子域和頂級域之間生成鏈接。
首先,我嘗試以這種方式創建路線:
Route::get('/','MainController@getHome')->name('home');
Route::group(array('domain' => '{subdomain}.localhost/public'), function() {
Route::get('/','MainController@getHomeNew' )->name('home_mew');
});
我的假設是,以下列方式生成鏈接會使我走上正確的路線:
//I assumed this would always generate a link to the root of 'localhost/public/':
route('home');
//And that this would always take me to a sub domain root e.g. 'cats.localhost/public/':
route('home_new', ['subdomain' => 'cats']);
當使用route('home_new',['subdomain'=>'cats'])在頂級域名頁面上時; 生成一個'cats.localhost / public'的鏈接。
問題是,一旦我在cats.localhost / public並使用route('home'),我仍然會被重定向到cats.localhost / public
所以我嘗試將頂級域路由包裝在一個自己的組中:
Route::group(array('domain' => 'localhost/public'), function() {
Route::get('/','MainController@getHome')->name('home');
});
Route::group(array('domain' => '{subdomain}.localhost/public'), function() {
Route::get('/','MainController@getHomeNew' )->name('home_mew');
});
但是,無論我是轉到頂級域根還是子域根,都會導致404錯誤。
如何在子域中生成鏈接,從而導致頂級域名? 這可以在沒有例如依賴重定向的情況下完成嗎?
我通過修改我的c:/ windows / system32 / drivers / etc / hosts文件並添加以下行解決了這個問題:
127.0.0.1 myapp.com subdomain.myapp.com anothersub.myapp.com
然后我更改了C:\\ xampp \\ apache \\ conf \\ extra \\ httpd-vhosts配置文件並添加了:
<VirtualHost *:80>
ServerName www.myapp.com
ServerAlias myapp.com
DocumentRoot C:\xampp\htdocs\myapp\_src\public
</VirtualHost>
並且因此修改我的路線:
Route::group(array('domain' => 'myapp.com'), function()
{
Route::get('/','MainController@getHome')->name('home');
});
Route::group(array('domain' => '{subdomain}.myapp.com'), function() {
Route::get('/','SubController@getHome' )->name('home_new');
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.