2014-02-23 44 views
0

我的客戶端的應用程序暫時在我的登臺服務器(my-domain.com)上運行,而在他的服務器上(client-domain.com),我放置了一個.htaccess文件將所有請求重定向到登臺服務器。目前爲止,除了使用Laravel的幫助程序構建URL之外,此工作正常。定義laravel應用程序的基礎url

例如,當我撥打{{ action('[email protected]' }}例如,Laravel返回my-domain.com/index(而不是所需的client-domain.com/index)。

現在我解決了這個問題,用絕對的,硬編碼的網址代替了這些調用,但是這擾亂了我的工作流程。

那麼,有沒有辦法強制Laravel使用特定的基本網址?

+0

你甚至爲什麼要做這樣的事情? –

+0

爲什麼你不使用URL :: route('index')?它是否也返回一個不受歡迎的網址? – Sturm

+0

@ URL:route是用於命名路由的afaik,但我只使用沒有附加路由的寧靜控制器。儘管如此,'action'和'route'都是同一類的成員,因此很可能使用相同的基本url。 – Taig

回答

1

Laravel爲當前運行的域生成url。目前,即使您使用client-domain.com調用它,laravel仍在my-domain.com上運行。 這取決於你當然如何重定向。

因此,首先,您爲什麼要將客戶端域重定向到您的服務器。

如果它是一個永久重定向,那麼這對你更好地:

  • 認爲它只是因爲它是:重定向
  • 考慮改變你的架構來支持兩個域同樣(無重定向等等)

如果它只是用於測試/調試(或其他),這重定向會消失,當你將進入生產階段,你不必擔心:

  • laravel正在創建鏈接以避免在每個頁面加載時執行額外的,無用的重定向,實際上這是一個好的表現。
  • 當你投入生產直接在client-domain.com安裝應用程序時,laravel會自動將所有鏈接指向該位置,所以你可以安全地刪除my-domain.com上的應用程序

在附註中,並不真正推薦使用多個網址訪問相同的內容。所以,你必須301重定向一個域到另一個(似乎是當前的行爲),然後只使用其中的一個。

編輯: 並回答你最後一個問題,沒有辦法設置laravel中的基礎URL(至少現在)。 github上似乎存在一個問題(這裏:https://github.com/laravel/framework/issues/92)。也許你可以朝這個方向進行調查,但我不認爲它會在一天內實施,因爲這在任何常規的Web應用程序中似乎都很冒險並且很少見。

+0

因爲這只是一個臨時解決方案,所以我通過簡單地覆蓋'index.php'文件中的'action'和'asset'輔助函數來解決這個問題。 – Taig

相關問題