1
resposta

[Dúvida] Remover caminho de diretório da URL

Publiquei o primeiro site que fiz para meu portfólio: www.sistema3dx.com.br O site tem apenas duas páginas .html, porém quando entro na segunda página ele aparece o diretório do arquivo e o .html na frente, e quando retorno também acontece o mesmo no index, ficando assim: www.sistema3dx.com.br/html/index.html e www.sistema3dx.com.br/html/suplementos.html

Tentei reescrever usando o .htacess mas não consigo fazer funcionar. Estou usando o host da Hostinger, coloquei o .htacess na raiz do public_html com o seguinte código:

<ifModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_GET} ^https://www.sistema3dx.com.br/
RewriteRule .* https://sistema3dx.com.br/home
</ifModule>

Coloquei o tipo de requisição (GET), coloquei a URL que é solicitada no header do get (https://www.sistema3dx.com.br/), usei a regex para todos caracteres (.*) e pedi para reescrever como (https://sistema3dx.com.br/home)

Não sei se estou fazendo algo errado, mas tem hora que funciona somente a remoção do www, hora não funciona nada. Alguém tem alguma ideia do por que não funciona? Se houverem outras formas de fazer isso seria interessante, pois não achei muito sobre.

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Olá Gabriel, tudo bem contigo?

Primeiramente eu gostaria de dizer que amei o seu site, ele está incrível, parabéns pela maravilhosa aplicação.

Agora parece que você está tentando configurar redirecionamentos usando o arquivo .htaccess para remover a exibição dos diretórios e extensões de arquivo em suas URLs. No entanto, o código que você forneceu não está correto e pode estar causando o problema.

Aqui estão algumas possíveis soluções para a sua situação:

  1. Redirecionamento para remover o diretório e a extensão de arquivo: Se você deseja que o URL seja exibido como "www.sistema3dx.com.br/" ou "www.sistema3dx.com.br/nome-da-página" em vez de "www.sistema3dx.com.br/html/index.html" ou "www.sistema3dx.com.br/html/suplementos.html", você pode usar o seguinte código .htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /html/$1.html [L]

Este código redirecionará automaticamente as solicitações para "www.sistema3dx.com.br/nome-da-página" para o arquivo correspondente em "www.sistema3dx.com.br/html/nome-da-página.html". Certifique-se de que o arquivo .htaccess esteja localizado na raiz do diretório onde estão seus arquivos HTML.

  1. Redirecionamento para remover o "www": Se você também deseja redirecionar o URL de "www.sistema3dx.com.br" para "sistema3dx.com.br", você pode usar o seguinte código:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.sistema3dx\.com\.br$ [NC]
RewriteRule ^(.*)$ https://sistema3dx.com.br/$1 [R=301,L]

Esse código redirecionará todas as solicitações feitas para "www.sistema3dx.com.br" para "sistema3dx.com.br" e removerá o "www" do URL.

Certifique-se de que o módulo mod_rewrite esteja ativado em sua hospedagem. Além disso, limpe o cache do navegador ou tente acessar o site em uma janela de navegação privada para evitar o cache do navegador.

Lembre-se de fazer backup do arquivo .htaccess existente antes de fazer qualquer alteração e teste as configurações em um ambiente de desenvolvimento antes de aplicá-las ao seu site ao vivo.

Espero que isso ajude a resolver o problema.

Abraços e bons estudos!