中央論壇 - CENTER BBS

標題: [PHP][Yii2] 子目錄部屬架構 - 設定 $request->baseUrl 修正Url與PrettyUrl [打印本頁]

作者: 死神    時間: 2016-1-22 11:52
標題: [PHP][Yii2] 子目錄部屬架構 - 設定 $request->baseUrl 修正Url與PrettyUrl
Yii2部屬上,如果不是在Domain根目錄,要部屬Yii2恐造成Base Url錯亂及PrettyUrl後的Route吃不進Yii。

例如,在Nginx location目錄名與實體uri(Sub document root in location)不一樣下,預設的Yii其Base Url會以uri為主而非Nginx location目錄名,另外PrettyUrl因為無法正確比對REQUEST_URI導致Route無法解析。

  1. # 基本影響層級,Url可能是取自DOCUMENT_URI
  2. \yii\helpers\Url::to(['/']);
  3. \yii\helpers\Url::home();
複製代碼



【解決方法】:

在Yii2 config -> request component -> baseUrl 設定基礎目錄(同Nginx location目錄名),以讓Yii依此套用全部基礎Url,也才能依此路徑去比對REQUEST_URI取得Route。

  1. $config = [
  2.     'components' => [
  3.         'request' => [
  4.             'cookieValidationKey' => '',
  5.             'baseUrl' => '/location_here'
  6.         ],
  7.     ]
  8. ]
複製代碼





歡迎光臨 中央論壇 - CENTER BBS (https://www.centerbbs.com/) Powered by Discuz! X3