"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como ocultar completamente os caminhos de front-end e back-end em aplicativos avançados Yii2?

Como ocultar completamente os caminhos de front-end e back-end em aplicativos avançados Yii2?

Publicado em 2024-11-18
Navegar:744

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

Ocultando completamente os caminhos de front-end e back-end do Yii2

Compreendendo o problema

O modelo de aplicativo avançado do Yii2 cria seções de front-end e back-end em diretórios separados. Por padrão, esses diretórios aparecem em URLs, o que pode ser indesejável para uma apresentação limpa e com aparência profissional. Este artigo tem como objetivo orientá-lo na ocultação completa desses diretórios.

Guia passo a passo

1. Configuração raiz .htaccess

No diretório raiz do projeto (por exemplo, advanced/), crie um arquivo .htaccess e cole o seguinte código:

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

2. Componente de solicitação

Crie um arquivo components/Request.php no diretório comum e adicione o seguinte código:

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();
        }
    }
}

3. Configurando aplicativos frontend e backend

Em frontend/config/main.php e backend/config/main.php, modifique os componentes request e urlManager da seguinte forma:

frontend /config/main.php

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

backend/config/main.php

'request' => [
    'class' => 'common\components\Request',
    'web' => '/backend/web',
    'adminUrl' => '/admin'
],
'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false
]

Etapa opcional 4 (se as etapas anteriores falharem)

Crie um arquivo .htaccess no diretório da web e adicione o seguinte código:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

Result

Depois de aplicar essas alterações, você pode acessar seu site em http:/ /localhost/yii2app e http://localhost/yii2app/admin sem nenhum caminho de front-end ou back-end aparecendo nas URLs.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3