Comment masquer les chemins frontend et backend dans les applications Yii2 ?

Linda Hamilton
Libérer: 2024-11-01 19:28:02
original
680 Les gens l'ont consulté

How to Hide Frontend and Backend Paths in Yii2 Applications?

Masquage des chemins frontend et backend dans Yii2 à l'aide de .htaccess et du composant de requête

Aperçu du problème

Les applications Yii2 affichent par défaut les chemins frontend et backend dans les URL. Cela peut être indésirable pour une expérience propre et conviviale. L'objectif est de rendre l'intégralité du site accessible sans révéler ces chemins.

Solution

Pour y parvenir, une combinaison de configurations .htaccess et un composant Request personnalisé est utilisé .

Étape 1 : Configuration .htaccess

Créez un fichier .htaccess dans le répertoire racine (c'est-à-dire advanced/.htaccess) avec le code suivant :

Options +FollowSymlinks
RewriteEngine On

# Handle admin URL first
RewriteCond %{REQUEST_URI} ^/(admin)
RewriteRule ^admin/assets/(.*)$ backend/web/assets/ [L]
RewriteRule ^admin/css/(.*)$ backend/web/css/ [L]
RewriteCond %{REQUEST_URI} !^/backend/web/(assets|css)/
RewriteCond %{REQUEST_URI} ^/(admin)
RewriteRule ^.*$ backend/web/index.php [L]

# Handle frontend URL
RewriteCond %{REQUEST_URI} ^/(assets|css)
RewriteRule ^assets/(.*)$ frontend/web/assets/ [L]
RewriteRule ^css/(.*)$ frontend/web/css/ [L]
RewriteRule ^js/(.*)$ frontend/web/js/ [L]
RewriteRule ^images/(.*)$ frontend/web/images/ [L]
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

Étape 2 : Composant de requête personnalisé

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

Étape 3 : Configuration des composants

Dans les fichiers frontend/config/main.php et backend/config/main.php, ajoutez ce qui suit sous le tableau des composants :

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

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

Étape facultative 4 : Fichier .htaccess dans le répertoire Web

Si les URL contiennent toujours les chemins frontend/backend, créez un fichier .htaccess dans le répertoire Web avec les lignes suivantes :

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/ [L]
Copier après la connexion

Conclusion

Avec ces modifications, l'application Yii2 fonctionnera désormais sans afficher les chemins frontend et backend dans les URL, offrant ainsi une interface plus conviviale. et une expérience frontale sécurisée.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!