Heim > Backend-Entwicklung > PHP-Tutorial > Wie verstecke ich Frontend- und Backend-Pfade in Yii2 mit .htaccess?

Wie verstecke ich Frontend- und Backend-Pfade in Yii2 mit .htaccess?

Susan Sarandon
Freigeben: 2024-10-30 17:42:03
Original
361 Leute haben es durchsucht

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

Verstecken von Frontend- und Backend-Pfaden mit .htaccess in Yii2

Problem:

Beim Zugriff auf das Frontend oder Backend eines In der Yii2-Anwendung sind die Pfade „frontend/web“ und „backend/web“ in URLs sichtbar, was unerwünscht sein kann. Dieser Artikel bietet eine Lösung, um diese Pfade vollständig auszublenden.

Lösung:

Schritt 1: .htaccess im Stammordner

Erstellen Sie eine .htaccess-Datei im Stammordner (advanced/) mit folgendem Inhalt:

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
Nach dem Login kopieren

Schritt 2: Components/Request.php

Komponenten erstellen /Request.php im allgemeinen Verzeichnis und fügen Sie den folgenden Code hinzu:

<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>
Nach dem Login kopieren

Schritt 3: Frontend- und Backend-Hauptkonfiguration

In frontend/config/main. php und backend/config/main.php, fügen Sie Folgendes unter dem Components-Array hinzu:

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

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
],</code>
Nach dem Login kopieren

In backend/config/main.php legen Sie zusätzlich die adminUrl fest:

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

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
],</code>
Nach dem Login kopieren

Schritt 4 (optional): .htaccess in Webverzeichnissen

Erstellen Sie eine .htaccess-Datei sowohl im Frontend/Web- als auch im Backend/Web-Verzeichnis mit Folgendem:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/ [L]
Nach dem Login kopieren

Ergebnis:

Nach diesen Änderungen sollten Sie auf Ihr Frontend unter http://localhost/yii2app/ und Ihr Backend unter http://localhost/yii2app/admin zugreifen können / ohne die Frontend- oder Backend-Pfade in den URLs zu sehen.

Das obige ist der detaillierte Inhalt vonWie verstecke ich Frontend- und Backend-Pfade in Yii2 mit .htaccess?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage