Para eliminar frontend web Yii2 de la estructura de URL de la aplicación, puede utilizar varios métodos seguros para obtener direcciones más limpias y profesionales. Este enfoque mejora la confianza del usuario, facilita la administración y mantiene una estructura ordenada.
En el desarrollo moderno, la apariencia de la URL es importante. Una URL demasiado larga puede confundir al usuario. Además, los directorios internos como frontend o backend no deberían mostrarse directamente. Por esta razón, es necesario aplicar una configuración adecuada para que la aplicación funcione bien sin exponer la estructura interna.
En este artículo encontrará tres métodos principales que puede utilizar, que son la configuración de Virtual Host en Apache, la modificación de la estructura de Yii2 y la configuración en Nginx. Todos los métodos son seguros tanto en entornos locales como de producción si se aplican correctamente.
1. Eliminar frontend web Yii2 usando Virtual Host en Apache
El Virtual Host permite asignar dominios a directorios específicos, evitando que aparezcan rutas como frontend/web o backend/web en la URL. Este método es habitual, sencillo y compatible con configuraciones avanzadas.
Abra el archivo de configuración de Apache, normalmente ubicado en httpd-vhosts.conf, y añada lo siguiente:
<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>Después de guardar los cambios, agregue los dominios al archivo hosts del sistema:
127.0.0.1 frontend.local 127.0.0.1 backend.local
Si todo está configurado correctamente, podrá acceder al frontend en http://frontend.local/ y al backend en http://backend.local/. Puede consultar la documentación oficial de Apache (nofollow) para configuraciones adicionales.
2. Modificar la estructura de Yii2 para eliminar frontend web Yii2
En este método, algunos archivos del frontend se mueven al directorio raíz. Es práctico para entornos locales o de pruebas. No obstante, para producción se recomienda utilizar Virtual Host o Nginx por estabilidad y seguridad.

Copie los directorios assets, css y el archivo index.php desde frontend/web al directorio raíz del proyecto. Luego modifique el archivo index.php con el siguiente código:
<?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();Cuando todo esté listo, podrá acceder al proyecto mediante http://localhost/nombre-del-proyecto/.

