Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menyembunyikan Laluan Frontend dan Backend dalam Yii2 dengan .htaccess?

Bagaimana untuk Menyembunyikan Laluan Frontend dan Backend dalam Yii2 dengan .htaccess?

Susan Sarandon
Lepaskan: 2024-10-30 17:42:03
asal
360 orang telah melayarinya

How to Hide Frontend and Backend Paths in Yii2 with .htaccess?

Menyembunyikan Laluan Frontend dan Backend dengan .htaccess dalam Yii2

Masalah:

Apabila mengakses frontend atau backend a Aplikasi Yii2, laluan "frontend/web" dan "backend/web" boleh dilihat dalam URL, yang mungkin tidak diingini. Artikel ini menyediakan penyelesaian untuk menyembunyikan sepenuhnya laluan ini.

Penyelesaian:

Langkah 1: .htaccess dalam Root Folder

Buat fail .htaccess dalam folder akar (lanjutan/) dengan kandungan berikut:

Options +FollowSymlinks
RewriteEngine On

# Admin
RewriteCond %{REQUEST_URI} ^/(admin)
RewriteRule ^admin/assets/(.*)$ backend/web/assets/ [L]
RewriteRule ^admin/css/(.*)$ backend/web/css/ [L]

RewriteCond %{REQUEST_URI} !^/backend/web/(assets|css)/
RewriteCond %{REQUEST_URI} ^/(admin)
RewriteRule ^.*$ backend/web/index.php [L]

# Frontend
RewriteCond %{REQUEST_URI} ^/(assets|css)
RewriteRule ^assets/(.*)$ frontend/web/assets/ [L]
RewriteRule ^css/(.*)$ frontend/web/css/ [L]
RewriteRule ^js/(.*)$ frontend/web/js/ [L]
RewriteRule ^images/(.*)$ frontend/web/images/ [L]

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

Langkah 2: components/Request.php

Buat komponen /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

Langkah 3: Konfigurasi Utama Frontend dan Backend

Di frontend/config/main. php dan backend/config/main.php, tambahkan yang berikut di bawah tatasusunan komponen:

<code class="php">'request' => [
    'class' => 'common\components\Request',
    'web' => '/frontend/web'
],

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
],</code>
Salin selepas log masuk

Dalam backend/config/main.php, tetapkan adminUrl:

<code class="php">'request' => [
    'class' => 'common\components\Request',
    'web' => '/backend/web',
    'adminUrl' => '/admin'
],

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
],</code>
Salin selepas log masuk

Langkah 4 (Pilihan): .htaccess dalam Direktori Web

Buat fail .htaccess dalam kedua-dua direktori frontend/web dan backend/web dengan yang berikut:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/ [L]
Salin selepas log masuk

Hasil:

Selepas perubahan ini, anda sepatutnya boleh mengakses bahagian hadapan anda di http://localhost/yii2app/ dan bahagian belakang anda di http://localhost/yii2app/admin / tanpa melihat laluan hujung hadapan atau hujung belakang dalam URL.

Atas ialah kandungan terperinci Bagaimana untuk Menyembunyikan Laluan Frontend dan Backend dalam Yii2 dengan .htaccess?. 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