„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 18.11.2024
Durchsuche:184

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:

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();
        }
    }
}

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

'request' => [
    'class' => 'common\components\Request',
    'web' => '/frontend/web'
],
'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false
]

backend/config/main.php

'request' => [
    'class' => 'common\components\Request',
    'web' => '/backend/web',
    'adminUrl' => '/admin'
],
'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false
]

Optionaler Schritt 4 (wenn vorherige Schritte fehlschlagen)

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?/$1 [L]

Ergebnis

Nachdem Sie diese Änderungen übernommen haben, können Sie unter http:/ auf Ihre Website zugreifen. /localhost/yii2app und http://localhost/yii2app/admin, ohne dass in den URLs Frontend- oder Backend-Pfade erscheinen.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3