Gostaria de reescrever um URL (Por quê? Veja esta pergunta .) Para que, em vez de os usuários verem endereços como
labouseur.com/course-compilers.html
eles podem ver e usar simplesmente
labouseur.com/course-compilers
(Melhor ainda, talvez eu deva reestruturar isso para que seja cursos / compiladores.)
Estou usando um serviço de hospedagem compartilhada baseado em Linux para o meu site, por isso não tenho controle administrativo do servidor, mas tenho controle sobre o .htaccess. As referências que li online pareciam pouco claras para mim, então estou procurando um pouco de clareza e conselhos aqui.
url-rewriting
htaccess
Alan
fonte
fonte
Respostas:
Você pode remover .html dos arquivos do servidor e definir as configurações no htaccess para que elas sejam exibidas como arquivos html, mas provavelmente não é isso que você está procurando.
Faça isso :
fonte
Primeiro, verifique se o apache possui o módulo e se ele é permitido nos arquivos .htacces e, em seguida, adicione:
Seu exemplo exigiria
Para uma estrutura de diretório de nível único e
Para uma estrutura multinível.
Mas tenha cuidado
Se você tem a estrutura
As regras de reescrita nos
.htaccess
arquivos filhos serão relativas à pasta pai e você poderá entrar em algumas situações de loop de reescrita bagunçadas . Certifique-se de usarRewriteCond
para impedi-los de acontecer, se puder!fonte
Além das respostas acima, pode-se usar
([\w-]+)
Permite letras, dígitos com um hífen (-).(.*)
reescreverá cada solicitação independentemente, o que pode impotir outras regras a seguir, causando erro interno no servidor ao acessar.fonte
RewriteRule
padrão é uma melhoria em relação à resposta aceita para o exemplo específico dado na pergunta; no entanto, ele falhará em corresponder ao caso mais geral quando houver mais de um segmento de caminho, por exemplo./path/to/course-compilers
. Inclua oL
sinalizador para diminuir o impacto nas seguintes regras. Embora o(.*)
padrão seja desnecessariamente geral, é improvável que cause problemas sérios, devido à condição que verifica o arquivo.Você não precisa usar um arquivo .htaccess para fazer isso. Simplesmente estruture seus arquivos em diretórios e, em vez de usar "labouseur.com/course-compilers.html", apenas nomeie o arquivo index.html e coloque-o em um diretório chamado "course-compilers". Então, quando você aponta para esse diretório, o índice é exibido por padrão, mas não será exibido na URL. Então você pode simplesmente escrever seus links como "labourseur.com/course-compilers" e tudo ficará bem.
Não é necessário .htaccess.
fonte