Pour supprimer le frontend web Yii2 de la structure d’URL de votre application, vous pouvez utiliser plusieurs méthodes fiables afin de rendre l’adresse plus propre et plus professionnelle. Cette approche améliore la confiance des utilisateurs, facilite la gestion et maintient une structure de développement ordonnée.
Dans le développement moderne, l’apparence d’un URL joue un rôle important. Un URL trop long peut déranger les utilisateurs. De plus, les répertoires internes comme frontend ou backend ne devraient pas apparaître directement. Pour cette raison, une configuration adaptée est nécessaire afin que l’application fonctionne de manière optimale sans exposer sa structure interne.
Dans cet article, trois méthodes principales sont présentées : configuration Virtual Host Apache, modification de la structure Yii2 et configuration Nginx. Chacune peut être utilisée en environnement local ou en production si elle est ajustée selon les bonnes pratiques.
1. Supprimer le frontend web Yii2 avec Virtual Host Apache
Virtual Host permet d’associer un domaine à un répertoire spécifique afin que les dossiers frontend/web et backend/web ne s’affichent pas dans l’URL. Cette méthode est courante, simple et compatible avec de nombreuses configurations avancées.
Ouvrez le fichier de configuration Apache, souvent situé dans httpd-vhosts.conf, puis ajoutez :
<VirtualHost *:80>
ServerName frontend.local
DocumentRoot "C:/xampp/htdocs/yii2-test/frontend/web/"
<Directory "C:/xampp/htdocs/yii2-test/frontend/web/">
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
DirectoryIndex index.php
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName backend.local
DocumentRoot "C:/xampp/htdocs/yii2-test/backend/web/"
<Directory "C:/xampp/htdocs/yii2-test/backend/web">
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
DirectoryIndex index.php
</Directory>
</VirtualHost>Ensuite, ajoutez les noms de domaine locaux dans le fichier hosts du système :
127.0.0.1 frontend.local 127.0.0.1 backend.local
Après configuration, le frontend est accessible via http://frontend.local/ et le backend via http://backend.local/. Vous pouvez consulter la documentation Apache (nofollow) pour des précisions supplémentaires.
2. Modifier la structure Yii2 pour supprimer le frontend web Yii2
Dans cette méthode, certains fichiers du frontend sont déplacés vers le répertoire racine du projet. Cette technique fonctionne bien en environnement de test. Toutefois, pour la production, il est conseillé d’utiliser Virtual Host ou Nginx.

Copiez les dossiers assets, css ainsi que le fichier index.php depuis frontend/web vers la racine du projet. Modifiez ensuite index.php comme suit :
<?php
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
require(__DIR__ . '/vendor/autoload.php');
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/common/config/bootstrap.php');
require(__DIR__ . '/frontend/config/bootstrap.php');
$config = yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/common/config/main.php'),
require(__DIR__ . '/common/config/main-local.php'),
require(__DIR__ . '/frontend/config/main.php'),
require(__DIR__ . '/frontend/config/main-local.php')
);
(new yii\web\Application($config))->run();Une fois terminé, l’application est accessible via http://localhost/nom-du-projet/.

