Yii2 の高度なアプリケーション テンプレートは、フロントエンドとバックエンドのセクションを別のディレクトリに作成します。デフォルトでは、これらのディレクトリは URL 内に表示されますが、これはクリーンでプロフェッショナルなプレゼンテーションには望ましくない場合があります。この記事の目的は、これらのディレクトリを完全に非表示にする方法を案内することです。
1.ルート .htaccess 構成
プロジェクトのルート ディレクトリ (advanced/ など) で .htaccess ファイルを作成し、次のコードを貼り付けます:
Options FollowSymlinks RewriteEngine On # Redirect admin requests to backend/web RewriteCond %{REQUEST_URI} ^/(admin) RewriteCond %{REQUEST_URI} !^/backend/web/(assets|css)/ RewriteRule ^.*$ backend/web/index.php [L] # Redirect all other requests to frontend/web RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css)/ RewriteCond %{REQUEST_URI} !index.php RewriteCond %{REQUEST_FILENAME} !-f [OR] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^.*$ frontend/web/index.php
2.リクエスト コンポーネント
common ディレクトリにコンポーネント/Request.php ファイルを作成し、次のコードを追加します。
namespace common\components;
class Request extends \yii\web\Request {
public $web;
public $adminUrl;
public function getBaseUrl(){
return str_replace($this->web, "", parent::getBaseUrl()) . $this->adminUrl;
}
public function resolvePathInfo(){
if($this->getUrl() === $this->adminUrl){
return "";
}else{
return parent::resolvePathInfo();
}
}
}
3.フロントエンドおよびバックエンド アプリケーションの構成
frontend/config/main.php および backend/config/main.php で、request コンポーネントと urlManager コンポーネントを次のように変更します。
frontend /config/main.php
'request' => [
'class' => 'common\components\Request',
'web' => '/frontend/web'
],
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false
]
backend/config/main.php
'request' => [
'class' => 'common\components\Request',
'web' => '/backend/web',
'adminUrl' => '/admin'
],
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false
]
オプションのステップ 4 (前のステップが失敗した場合)
Web ディレクトリに .htaccess ファイルを作成し、次のコードを追加します:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?/$1 [L]
Result
これらの変更を適用すると、http:/ で Web サイトにアクセスできるようになります。 /localhost/yii2app および http://localhost/yii2app/admin (URL にフロントエンドまたはバックエンドのパスは表示されません)。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3