Servidor fazendo cache no arquivo .htaccess? Aqui como resolver
Tive um problema com o arquivo .htaccess
do site ontem, o que aconteceu foi que os redirecionamentos 301 não estavam funcionando. Dentro do meu arquivo .htaccess
, tenho muitos redirecionamentos 301 que funcionaram bem por um longo tempo, mas ontem tentei adicionar novas entradas e não funcionaram. Quando verifiquei de perto, percebi que o servidor não parece estar usando a versão que estou salvando. Parece que o servidor está usando outro arquivo, pois já limpei o cache do meu navegador, tentei outro navegador, limpei o cache do meu site e até reiniciei o servidor, ainda com o mesmo problema. Estou usando um VPS com CentOS e DirectAdmin.
Este é um tutorial para quem está usando este método para redirecionar os URLS: Redirect 301 / categoria1 / postagem / categoria2 / postagem
Eu fiz isso, mas o servidor não estava carregando o arquivo modificado. Não tinha nenhum plugin de cache habilitado, também desabilitei todos os plugins do meu site, ainda com o mesmo problema.
Sim, mod_rewrite
está funcionando, como eu disse, os redirecionamentos que criei antes estão funcionando, só que agora parecia que o servidor estava armazenando em cache um arquivo antigo. Tentei pesquisar sobre isso e não consegui encontrar uma solução em lugar nenhum, até contatei meu host e eles não resolveram.
Hoje tive outra conversa com meu host e eles resolveram, como ?
Assim:
Atualmente o OpenLiteSpeed lê .htaccess na hora de início, portanto, se alguns novos arquivos .htaccess forem criados ou os atuais modificados – as alterações não entrarão em vigor até o recarregamento do OpenLiteSpeed serviço. Observe que o DirectAdmin oferece aos clientes a capacidade de recarregar o OpenLiteSpeed diretamente do nível do usuário e faz isso automaticamente para os arquivos .htaccess editados no Gerenciador de arquivos. Ele também é recarregado automaticamente quando carregado usando FTP se a opção pureftpd_uploadscan for usada no CustomBuild. No entanto, se você gostaria de ter uma configuração de cronjob, que recarregaria OpenLiteSpeed a cada X minutos se houver arquivos .htaccess mais novos que o tempo de início do OpenLiteSpeed. Com acesso root
no servidor você pode usar um cronjob assim via linha de comando.
Vamos começar, o comando a seguir abre a pasta do arquivo no qual será inserido o cron job:
cd /etc/cron.d/
O comando a seguir abre para edição o arquivo no qual será inserido o cron job:
nano openlitespeed_htaccess_scan
Após ter aberto arquivo, copie e cole nele o “texto” a seguir:
*/3 * * * * root if ! find /home/*/domains/*/*_html/ -maxdepth 2 -type f -newer /usr/local/lsws/cgid -name '.htaccess' -exec false {} +; then /usr/local/lsws/bin/lswsctrl restart; fi* * root if ! find /home/*/domains/*/*_html/ -maxdepth 2 -type f -newer /usr/local/lsws/cgid -name '.htaccess' -exec false {} +; then /usr/local/lsws/bin/lswsctrl restart; fi
Salve o arquivo e feche-o (todos os comandos de edição, inclusive de salvar e sair, estão disponíveis no rodapé da janela de edição do nano).
O arquivo editado é o openlitespeed_htaccess_scan. O cron job irá procurar, de 3 em 3 minutos, por arquivos .htaccess
nas pastas public_html
e private_html
, com um limite de até 2 subdiretórios (e isso também pode ser configurado para aceitar 3 subdiretórios ou para não ter limite, entretanto, muito cuidado ao remover o limite, pois pode deixar a busca lenta).
Caso não queira criar um cronjob, reiniciar o OLS também resolve, basta fazer isto:
/usr/local/lsws/bin/lswsctrl restart
Então é basicamente isso, apenas um problema de cache do Litespeed.
Fonte: https://help.directadmin.com/item.php?id=2097
Por Matheus Lopes