Maison > développement back-end > tutoriel php > Comment masquer complètement les chemins frontend et backend dans les applications avancées Yii2 ?

Comment masquer complètement les chemins frontend et backend dans les applications avancées Yii2 ?

Mary-Kate Olsen
Libérer: 2024-11-03 17:15:03
original
335 Les gens l'ont consulté

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

Masquer complètement les chemins frontend et backend de Yii2

Comprendre le problème

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 vise à vous guider pour masquer complètement ces répertoires.

Guide étape par étape

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
Copier après la connexion

2. Request Component

Créez un fichier composants/Request.php dans le répertoire commun et ajoutez le code suivant :

<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>
Copier après la connexion

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

<code class="php">'request' => [
    'class' => 'common\components\Request',
    'web' => '/frontend/web'
],
'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false
]</code>
Copier après la connexion

backend/config/main.php

<code class="php">'request' => [
    'class' => 'common\components\Request',
    'web' => '/backend/web',
    'adminUrl' => '/admin'
],
'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false
]</code>
Copier après la connexion

Étape facultative 4 (si les étapes précédentes échouent)

Créer 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?/ [L]
Copier après la connexion

Résultat

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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal