Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

437
Vistas
htaccess para reescribir la URL para eliminar la extensión php solo en el directorio raíz y no en los subdirectorios

Tengo un sitio web compuesto de la siguiente manera:

 index.php page1.php page2.php page3.php - images image1.jpg image2.jpg - style style.css

Quiero escribir un archivo htaccess que pueda darme una URL compatible con SEO. Por ejemplo:

  • https://example.com/page2.php debería ser https://example.com/page2

y también:

  • https://example.com/page2.php#mytab debe ser https://example.com/page2#mytab

Pero me gustaría aplicar esas reglas solo en el primer directorio, por lo que se puede seguir accediendo a los directorios de "imágenes" y "estilo" utilizando las extensiones.

¿Alguien puede ayudar? Gracias

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

  1. Ya debería estar enlazando a los archivos sin la extensión .php en sus URL internas (es decir, href="/page1" , no href="/page1.php" ). También asumo que sus URL no contienen puntos (que normalmente delimitan la extensión del archivo).

  2. Implemente una reescritura para agregar la extensión .php si es necesario. Esto debe ir cerca de la parte superior del archivo raíz .htaccess :

     RewriteEngine On # Internally rewrite extenionless URLs to append ".php" if required # Tests only requests (that do not contain a dot) in the root directory RewriteCond %{DOCUMENT_ROOT}/$1.php -f RewriteRule ^([^./]+)$ $1.php [L]

    Alternativa para RewriteCond (verificación del sistema de archivos):

     RewriteCond %{REQUEST_FILENAME}.php -f :

    Alternativamente, puede eliminar la directiva RewriteCond por completo para reescribir incondicionalmente todas las solicitudes en la raíz (sin una extensión de archivo) para agregar la extensión .php .

  3. (OPCIONAL) Si está cambiando la estructura de una URL y eliminando .php de sus URL y las URL antiguas han sido indexadas por motores de búsqueda y/o vinculadas por terceros, también debe implementar una redirección para eliminar la extensión .php para SEO.

    Agregue lo siguiente inmediatamente después de la directiva RewriteEngine anterior (antes de la reescritura interna):

     # Redirect to remove the `.php` extension inbound requests # Only affects the root directory RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^([^./]+)\.php$ /$1 [R=301,L]

    La condición que prueba contra la variable de entorno REDIRECT_STATUS asegura que no redirigimos las solicitudes ya reescritas por la reescritura posterior y esto evita un bucle de redirección.

    NB: pruebe primero con una redirección 302 (temporal) para evitar posibles problemas de almacenamiento en caché.

  4. Alternativamente (en lugar de # 3 ), para evitar el acceso directo al archivo .php y mostrar un 404 Not Found en su lugar, agregue lo siguiente inmediatamente después de la directiva RewriteEngine anterior (antes de la reescritura interna):

     # Prevent direct access to ".php" file and serve a 404 instead # Only affects the root directory RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^([^./]+)\.php$ - [R=404]

¿Cuál es la mejor manera de mostrar el contenido de mi página 404 personalizada cada vez que ocurre un error 404? (No me gustaría usar la redirección)

Use lo siguiente en la parte superior del archivo .htaccess , pasando la ruta URL completa a la directiva ErrorDocument .

 ErrorDocument 404 /error-docs/e404.php

El documento de error indicado se llama mediante una subsolicitud interna (no hay redirección externa).

Tenga en cuenta que esto debe incluir la extensión de archivo .php aquí; esto es completamente invisible para el usuario.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda