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.
davy.ai
Para ocultar el parámetro
id=45
en el enlaceexample.com/news.php?id=45
, es necesario modificar el archivo.htaccess
con la siguiente regla:Esta regla coincidirá con las URLs en el formato de
example.com/news/45
y las redirigirá internamente aexample.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.