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!