Templat Aplikasi Terperinci Yii2 mencipta bahagian bahagian hadapan dan bahagian belakang dalam direktori berasingan. Secara lalai, direktori ini muncul dalam URL, yang boleh menjadi tidak diingini untuk persembahan yang bersih dan kelihatan profesional. Artikel ini bertujuan untuk membimbing anda menyembunyikan direktori ini sepenuhnya.
1. Root .htaccess Configuration
Dalam direktori akar projek (cth., advanced/), cipta fail .htaccess dan tampal kod berikut:
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. Minta Komponen
Buat komponen/fail Request.php dalam direktori biasa dan tambah kod berikut:
<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. Mengkonfigurasi Aplikasi Frontend dan Backend
Dalam frontend/config/main.php dan backend/config/main.php, ubah suai permintaan dan komponen urlManager seperti berikut:
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>
Pilihan Langkah 4 (jika Langkah Sebelumnya Gagal)
Buat fail .htaccess dalam direktori web dan tambahkan kod berikut:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?/ [L]
Keputusan
Selepas memohon perubahan ini, anda boleh mengakses tapak web anda di http://localhost/yii2app dan http://localhost/yii2app/admin tanpa sebarang laluan frontend atau backend muncul dalam URL.
Atas ialah kandungan terperinci Bagaimana untuk Menyembunyikan Laluan Frontend dan Backend sepenuhnya dalam Aplikasi Lanjutan Yii2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!