Yii2 htaccess - Como esconder frontend / web e backend / web COMPLETAMENTE

Eu acho que estou bem perto. Eu tenho o htaccess redirecionando para o site (frontend / web) e o/admin caminho (backend/web) O site parece bom, carregamento de arquivos CSS, etc.

Se você vai para:http: // localhost / yii2app / - carrega a página inicial e não redireciona na barra de endereço, mas a página mostra frontend / web em todos os URLs.

se você vai para:http: // localhost / yii2app / admin - carrega a página de login de back-end, no entanto, é redirecionada imediatamente para / back-end / web / site / login na barra de endereço (feia).

Problema: Ofrontend/backend os caminhos estão sendo exibidos nos URLs (barra de endereço e links na página).

O que eu preciso: quero que todo o site funcione sem mostrar links de front-end / back-end. A raiz do projeto deve puxar (invisivelmente) ofrontend/web sem mostrar .. Entãohttp: // localhost / yii2app / executa todo o meu front-end ehttp: // localhost / yii2app / admin / executa todo o meu back-end.

Por quê? Eu sinto que essa configuração seria bastante sólida e elegante quando estiver em um servidor. Eu quero poder enviar minha pasta de projeto para um site e ela funciona muito bem sem a necessidade de hacks para lidar com o servidor local vs.

.htaccess arquivo em/yii2app dir:

Options -Indexes
RewriteEngine on

<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_URI} !^/backend/web/(assets|css)/
    RewriteCond %{REQUEST_URI} admin
    RewriteRule .* backend/web/index.php [L]

    RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css)/
    RewriteCond %{REQUEST_URI} !admin
    RewriteRule .* frontend/web/index.php [L]
</IfModule>

Agora, nos diretórios web front-end e back-end, ambos têm o mesmo.htaccess:

RewriteEngine on

# if a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward the request to index.php
RewriteRule . index.php

eu não quero ver/frontend/web ou/backend/web sempre :)

Tentei jogar com o RewriteRule no htaccess da raiz para adicionar/admin para o URL, mas ficava me dizendo/admin não existe. EuCONHECER não existe e não quero que exista. Eu quero que seja um caminho relativo .. ou seja: / admin == / back-end / web.

Exprimido de outra maneira. Eu forma tudo na raiz do projeto (http: // localhost / yii2app /) para carregarfrontend/web, mas sem mostrar. Além disso,http: // localhost / yii2app / admin carregarbackend/web e apenas mostrandohttp: // localhost / yii2app / admin. Obviamente, eles teriam seus respectivoscontroller/action anexado a eles. Então, o administrador pode parecerhttp: // localhost / yii2app / admin / site / login

NOTA: Não joguei com nenhum dos arquivos. Esta é uma configuração avançada do estoque yii2, usando o compositor e seguindo os documentos. A única coisa com a qual joguei até agora são os arquivos htaccess mencionados.

Obrigado!

questionAnswers(6)

yourAnswerToTheQuestion