Le modèle d'application avancé de Yii2 crée des sections frontend et backend dans des répertoires séparés. Par défaut, ces répertoires apparaissent dans les URL, ce qui peut être indésirable pour une présentation claire et professionnelle. Cet article a pour but de vous guider pour masquer complètement ces répertoires.
1. Configuration racine .htaccess
Dans le répertoire racine du projet (par exemple, advanced/), créez un fichier .htaccess et collez le code suivant :
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. Request Component
Créez un fichier composants/Request.php dans le répertoire commun et ajoutez le code suivant :
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. Configuration des applications frontend et backend
Dans frontend/config/main.php et backend/config/main.php, modifiez les composants request et urlManager comme suit :
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
]
Étape facultative 4 (si les étapes précédentes échouent)
Créez un fichier .htaccess dans le répertoire Web et ajoutez le code suivant :
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?/$1 [L]
Result
Après avoir appliqué ces modifications, vous pouvez accéder à votre site Web à l'adresse http:/ /localhost/yii2app et http://localhost/yii2app/admin sans qu'aucun chemin frontend ou backend n'apparaisse dans les URL.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3