es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Regla de reescritura para ocultar la extensión .htaccess

Estoy tratando de ocultar la extensión del archivo .php del enlace.

Por ejemplo, de www.example.com/about.php a www.example.com/about.

Lo que hice fue:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC,L] 

Y funciona perfectamente.

Pero tengo otro enlace, example.com/news.php?id=45, y según la regla anterior, puedo acceder al enlace así:

example.com/news?id=45 sin el .php

Pero quiero ocultar id=45, quiero que se vea así: example.com/news/45.

Lo que hice fue RewriteRule ^news.php?id=([0-9]+) /news/$1 [NC,L].

Pero no funciona, obtengo un error interno de servidor 500.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para ocultar el parámetro id=45 en el enlace example.com/news.php?id=45, es necesario modificar el archivo .htaccess con la siguiente regla:

    RewriteRule ^news/([0-9]+)/?$ /news.php?id=$1 [NC,L]
    

    Esta regla coincidirá con las URLs en el formato de example.com/news/45 y las redirigirá internamente a example.com/news.php?id=45. La parte [0-9]+ de la regla coincidirá con cualquier cantidad de dígitos después del segmento de ruta /news/.

    Asegúrese de colocar esta regla antes de la regla general de ocultación de extensión .php en su archivo .htaccess. Además, revise los registros de errores del servidor para cualquier mensaje específico que pueda ayudar a diagnosticar el error 500 de servidor interno.

Comments are closed.