Eu tenho um .htaccess que usa autenticação básica. Parece que o caminho para o arquivo .htpasswd não é relativo ao arquivo htaccess, mas sim à configuração do servidor.
Portanto, embora eu tenha os arquivos .htaccess e .htpasswd no mesmo diretório, isso não funciona:
AuthType Basic
AuthName "Private Login"
AuthUserFile .htpasswd
Require valid-user
No entanto, funcionará se eu alterar o AuthUserFile para usar o caminho absoluto:
AuthType Basic
AuthName "Private Login"
AuthUserFile "/home/user/public_html/mydir/.htpasswd"
Require valid-user
Mas eu preferiria algo mais móvel, pois uso isso em vários sites em áreas diferentes. Pesquisei na web, mas não encontrei nenhuma resolução. É possível usar caminho relativo ou variáveis como %{DOCUMENT_ROOT}
?
/var/...
) - e a questão pergunta: "como usar um caminho relativo"?Caso as pessoas estejam procurando uma solução para isso:
fonte
req('Host')
, o cliente não pode enganar esse valor?1) Observe que é considerado inseguro ter o
.htpasswd
arquivo abaixo da raiz do servidor.2) Os documentos dizem isso sobre caminhos relativos, então parece que você está sem sorte:
3) Embora as respostas recomendando o uso de variáveis de ambiente funcionem perfeitamente bem, eu preferiria colocar um marcador de posição no
.htaccess
arquivo, ou ter versões diferentes em minha base de código, e ter o processo de implantação configurando tudo (ou seja, substituir marcadores de posição ou renomear / mover o arquivo apropriado).Em projetos Java, eu uso o Maven para fazer este tipo de trabalho, digamos, em projetos PHP, gosto de ter um script de shell build.sh e / ou install.sh que ajusta os arquivos implantados em seu ambiente. Isso separa sua base de código das especificações de seu ambiente de destino (ou seja, suas variáveis de ambiente e parâmetros de configuração). Em geral, o aplicativo deve se adaptar ao ambiente; se você fizer isso ao contrário, poderá ter problemas, uma vez que o ambiente também deve atender a diferentes aplicativos ou a requisitos específicos do sistema completamente não relacionados.
fonte
você pode colocar suas configurações de Auth em um ambiente. Gostar:
O Auth está funcionando, mas não consegui fazer meu ambiente realmente funcionar.
fonte
/Users/...
) - e a questão pergunta: "como usar um caminho relativo"?.htpasswd requer um caminho absoluto completo da raiz absoluta do servidor.
Obtenha o caminho absoluto completo do arquivo por echo
echo $_SERVER['DOCUMENT_ROOT'];
.aqui está funcionando o script de autenticação .htaccess básico.
Antes de entrar
Afetr Login
fonte
Se você está tentando usar o XAMPP com Windows e deseja usar um arquivo .htaccess em um servidor ativo e também desenvolver em uma máquina de desenvolvimento XAMPP, o seguinte funciona muito bem!
1) Após uma nova instalação do XAMPP, certifique-se de que o Apache está instalado como um serviço.
2) Quando o Apache é instalado como um serviço, adicione uma nova variável de ambiente como um sinalizador.
3) Inicie o Apache
4) Crie seu arquivo .htaccess com as seguintes informações ...
Para explicar o script acima, aqui estão algumas notas ...
5) Crie seu arquivo de senha (neste caso denominado .htpasswd) com as seguintes informações ...
Algumas coisas a serem observadas ...
fonte
/home...
) - e a questão pergunta: "como usar um caminho relativo"?ou se você desenvolve em localhost (apenas para apache 2.4+):
fonte
Sei que essa é uma pergunta antiga, mas acabei de pesquisar a mesma coisa e provavelmente há muitos outros procurando por uma solução rápida e móvel. Aqui está o que eu finalmente descobri:
fonte
/var...
) - e a questão pergunta: "como usar um caminho relativo"?.htaccess
arquivo. Se você fosse usar um caminho relativo, ele seria considerado relativo aoServerRoot
.Vamos dar um exemplo.
Seu aplicativo está localizado em / var / www / myApp em algum servidor Linux
.htaccess : /var/www/myApp/.htaccess
htpasswdApp : / var / www / myApp / htpasswdApp . (Você pode usar qualquer nome para o arquivo .htpasswd )
Para usar o caminho relativo em .htaccess :
Mas ele irá procurar o arquivo no diretório server_root . Não em document_root .
Em nosso caso, quando o aplicativo está localizado em / var / www / myApp :
document_root é / var / www / myApp
server_root é / etc / apache2 // (apenas em nosso exemplo, por usarmos o servidor Linux )
Você pode redefini-lo em seu arquivo de configuração do apache ( /etc/apache2/apache2.conf ), mas acho que é uma má ideia.
Portanto, para usar o caminho relativo do arquivo em seu /var/www/myApp/.htaccess, você deve definir o arquivo de senha em seu server_root .
Eu prefiro fazer isso seguindo o comando:
Você está livre para copiar meu comando, usar um link físico em vez de símbolo ou copiar um arquivo para seu server_root .
fonte