ホームページ >バックエンド開発 >PHPチュートリアル >Yii2 アドバンスト アプリケーションでフロントエンドとバックエンドのパスを完全に非表示にする方法は?
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.リクエスト コンポーネント
共通ディレクトリにコンポーネント/Request.php ファイルを作成し、次のコードを追加します。
<code class="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(); } } }</code>
3.フロントエンドおよびバックエンド アプリケーションの構成
frontend/config/main.php および backend/config/main.php で、request コンポーネントと urlManager コンポーネントを次のように変更します。
frontend /config/main.php
<code class="php">'request' => [ 'class' => 'common\components\Request', 'web' => '/frontend/web' ], 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false ]</code>
backend/config/main.php
<code class="php">'request' => [ 'class' => 'common\components\Request', 'web' => '/backend/web', 'adminUrl' => '/admin' ], 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false ]</code>
オプションのステップ 4 (前のステップの場合)失敗)
Web ディレクトリに .htaccess ファイルを作成し、次のコードを追加します:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?/ [L]
結果
適用後これらの変更により、URL にフロントエンドまたはバックエンドのパスが表示されなくても、http://localhost/yii2app および http://localhost/yii2app/admin で Web サイトにアクセスできるようになります。
以上がYii2 アドバンスト アプリケーションでフロントエンドとバックエンドのパスを完全に非表示にする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。