Heim > Artikel > Backend-Entwicklung > Wie kann man Frontend- und Backend-Pfade in erweiterten Yii2-Anwendungen vollständig ausblenden?
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.
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!