簡體   English   中英

定義laravel應用程序的基本URL

[英]Define base url for laravel application

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

例如,當我調用{{ action( 'Controller@getIndex' }} ,Laravel返回my-domain.com/index (而不是所需的client-domain.com/index )。

現在,我通過將這些調用替換為絕對的,硬編碼的URL來解決了此問題,但這困擾了我的工作流程。

因此,有沒有辦法強迫Laravel使用特定的基本網址?

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

因此,首先,為什么要將客戶端域重定向到服務器。

如果這是永久重定向,那么最好執行以下操作:

  • 照原樣考慮:重定向
  • 考慮更改您的體系結構以平等地支持兩個域(因此無需重定向)

如果僅用於測試/調試(或其他),並且當您進入生產階段時此重定向將消失,則不必擔心:

  • laravel正在創建鏈接以避免在每次頁面加載時進行額外的,無用的重定向,實際上這是明智的性能選擇。
  • 當您投入生產並直接在client-domain.com中安裝應用程序時,laravel會自動將所有鏈接指向該位置,因此您可以安全地在my-domain.com上刪除應用程序

附帶說明一下,實際上不建議通過多個URL訪問相同的內容。 因此,您必須301將一個域重定向到另一個域(似乎是當前行為),然后僅使用其中一個。

編輯:並回答您最后一個問題,沒有辦法在laravel中設置基本URL(至少現在是這樣)。 github上似乎有個問題(在這里: https : //github.com/laravel/framework/issues/92 )。 也許您可以朝這個方向進行調查,但是我認為不會一天實現,因為在任何常規的Web應用程序中這似乎都是很棘手的事情,而且很少見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM