[yii2] Manera fácil de ocultar frontend/web y backend/web

Yii2 proporciona la URL por defecto con frontend/web y backend/web. En aplicaciones web reales, URLs como esta no son atractivas, así que, en este caso, necesitamos eliminar u ocultar el frontend/web de la URL.

Hay varias formas de hacerlo, en el ejemplo siguiente lo haremos de una manera:

  1. Utilizar un host virtual
  2. Modificar Yii2

1. Host virtual apache

Para ocultar el frontend /web y backend/web en apache puedes hacerlo creando un host virtual. Abre el archivo de configuración de apache «…apacheconfextrahttpd-vhosts.conf» con el bloc de notas. Añade en la última línea

<VirtualHost *:80="">
    ServerName frontend.bardimin
    #sesuaikan with yii installation directories created
    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.bardimin
    #sesuaikan with yii installation directories created
    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>

A continuación, edite el archivo hosts en «C:\Windows\System32\drivers\etc\hosts» con el bloc de notas y añádalo a la última línea

#sesuaikan with ServerName as above
127.0.0.1 frontend.bardimin
127.0.0.1 backend.bardimin

Para acceder a los resultados desde el navegador, escriba la siguiente dirección URL:

Frontend: http://frontend.bardimin/ –
backend: http://backend.bardimin/

2. Modificar Yii2

La segunda forma, es decir, creando copias de directorio de «assets» y «css» así como de«index.php»archivos que existen en el directorio «frontend/web» al directorio raíz de la instalación de Yii.

copy to rooot

A continuación, abra el archivo index.php y copie 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 = yiihelpersArrayHelper::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 yiiwebApplication($config))->run();

Para acceder a los resultados desde el navegador, escriba la dirección URL «http://localhost/» en el directorio de instalación de Yii, por ejemplo, «http://localhost/yii-advanced».

Artículos más recientes