Bagaimana untuk Menyembunyikan Laluan Frontend dan Backend sepenuhnya dalam Aplikasi Lanjutan Yii2?

Mary-Kate Olsen
Lepaskan: 2024-11-03 17:15:03
asal
268 orang telah melayarinya

How to Completely Hide Frontend and Backend Paths in Yii2 Advanced Applications?

Menyembunyikan sepenuhnya Laluan Bahagian Hadapan dan Bahagian Belakang Yii2

Memahami Masalah

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.

Panduan Langkah demi Langkah

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
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

backend/config/main.php

<code class="php">'request' => [
    'class' => 'common\components\Request',
    'web' => '/backend/web',
    'adminUrl' => '/admin'
],
'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false
]</code>
Salin selepas log masuk

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]
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan