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