Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

214
Visualizações
Cómo usar .htaccess para redirigir una página pero también usarlo como W3 include

Estoy construyendo un sitio html usando el método de inclusión que se muestra aquí de w3schools

https://www.w3schools.com/howto/howto_html_include.asp

el sitio básicamente se parece a lo siguiente

 <div w3-include-html="navigation.html"></div> <body> </body> <div w3-include-html="footer.html"></div>

Funciona muy bien cuando estás en las páginas correctas del sitio web, pero si navego directamente a navigation.html, muestra una página inútil y de aspecto terrible.

Traté de redirigirlo usando el archivo .htaccess con algo como lo siguiente para que un usuario pudiera aterrizar con gracia en una página que dice lo siento, esto no existe, haga clic aquí, bla, bla...

Redirigir /navegación.html /página-no-encontrada.html

sin embargo, eso termina haciendo que la barra de navegación en todas mis páginas reales muestre el html dentro de la página page-does-not-exist.html.

¿Hay alguna manera fácil de usar .htaccess para redirigir a un usuario que está escribiendo directamente www.example.com/navigation.html a www.example.com/page-not-found.html mientras permite que mis otras páginas 'incluyan' 'normalmente?

Gracias por cualquier ayuda que pueda ofrecer.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Este método utiliza JavaScript (objeto XMLHttpRequest , es decir, "AJAX") para realizar una solicitud HTTP para el documento en el servidor. Por lo general, esto no es diferente (desde la perspectiva del servidor) a una solicitud directa que el cliente podría realizar escribiendo la URL del archivo directamente.

Debe hacer que la solicitud de JavaScript sea diferente para que el servidor pueda detectarla.

Puede agregar un encabezado de solicitud HTTP personalizado (o anular la cadena User-Agent ) a la solicitud de JavaScript y verificar este encabezado usando mod_rewrite en .htaccess en el servidor para enviar una respuesta alternativa si este encabezado no está configurado como se esperaba (es decir, si el archivo se solicita directamente).

Por ejemplo, según el código de w3schools, agregue una segunda línea después de crear el objeto XMLHttpRequest :

 xhttp = new XMLHttpRequest(); xhttp.setRequestHeader('User-Agent','XMLHTTP');

Esto establece el encabezado User-Agent en la solicitud JS en XMLHTTP . Luego podemos verificar esto usando mod_rewrite y servir un 404 si no está configurado.

Sin embargo, no debe "redireccionar" al script page-not-found.html . Configure esto como un documento de error 404 personalizado en su lugar y permita que Apache lo sirva.

Por ejemplo:

 ErrorDocument 404 /page-not-found.html RewriteEngine On RewriteCond %{HTTP_USER_AGENT} !=XMLHTTP RewriteRule ^navigation\.html$ - [R=404]

Cualquier solicitud de /navigation.html donde la cadena User-Agent no sea XMLHTTP recibe el documento de error 404 personalizado, es decir. /page-not-found.html . Por lo tanto, solo se permiten solicitudes de su secuencia de comandos.

NB: Esta no es una función de seguridad, simplemente evita que cualquier persona que escriba casualmente la URL en el navegador vea el contenido (incluidos los motores de búsqueda).


Aparte:

 <div w3-include-html="navigation.html"></div> <body> </body> <div w3-include-html="footer.html"></div>

¿Parece que está incluyendo elementos HTML fuera del body HTML? Esto no es HTML válido.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda