Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man Frontend- und Backend-Pfade in erweiterten Yii2-Anwendungen vollständig ausblenden?

Wie kann man Frontend- und Backend-Pfade in erweiterten Yii2-Anwendungen vollständig ausblenden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-03 17:15:03273Durchsuche

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

Yii2 Frontend- und Backend-Pfade vollständig ausblenden

Das Problem verstehen

Yii2s erweiterte Anwendungsvorlage erstellt Frontend- und Backend-Abschnitte in separaten Verzeichnissen. Standardmäßig erscheinen diese Verzeichnisse in URLs, was für eine saubere und professionell aussehende Präsentation unerwünscht sein kann. Dieser Artikel soll Ihnen dabei helfen, diese Verzeichnisse vollständig auszublenden.

Schritt-für-Schritt-Anleitung

1. Root-.htaccess-Konfiguration

Erstellen Sie im Stammverzeichnis des Projekts (z. B. advanced/) eine .htaccess-Datei und fügen Sie den folgenden Code ein:

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. Komponente anfordern

Erstellen Sie eine Datei „components/Request.php“ im gemeinsamen 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>

3. Konfigurieren von Frontend- und Backend-Anwendungen

Ändern Sie in frontend/config/main.php und backend/config/main.php die Anforderungs- und URLManager-Komponenten wie folgt:

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>

Optionaler Schritt 4 (falls vorherige Schritte Fehlgeschlagen)

Erstellen Sie eine .htaccess-Datei im Webverzeichnis und fügen Sie den folgenden Code hinzu:

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

Ergebnis

Nach der Bewerbung Nach diesen Änderungen können Sie unter http://localhost/yii2app und http://localhost/yii2app/admin auf Ihre Website zugreifen, ohne dass Frontend- oder Backend-Pfade in den URLs erscheinen.

Das obige ist der detaillierte Inhalt vonWie kann man Frontend- und Backend-Pfade in erweiterten Yii2-Anwendungen vollständig ausblenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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