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.

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!