apache - work - Otra pregunta mod_rewrite finalizada
rewrite url apache (2)
Tal vez MultiViews
está causando este comportamiento. Intenta deshabilitar esta opción:
Options -MultiViews
Otra suposición: eliminar la barra inicial en la sustitución.
Tengo las siguientes reglas de reescritura en mi archivo .htaccess
:
RewriteEngine on
RewriteRule ^news/([0-9]+)/?$ /?action=news&start=$1 [L]
RewriteRule ^man/([a-zA-Z0-9_]+)/?$ /?action=man&page=$1 [L]
RewriteRule ^([a-zA-Z0-9_]+)/?$ /?action=$1 [L]
Todo entonces termina con un /?
para verificar si hay una barra inclinada opcional. Esto funciona, significa que puedo usar http://www.site.com/news/
o http://www.site.com/news
para acceder a la página de news
, que es lo que quiero. El problema es que, si bien http://www.site.com/news/
funciona bien y redirige silenciosamente y todas esas cosas divertidas, http://www.site.com/news
se redirecciona visiblemente a http://www.site.com/news/?action=news
por alguna razón. Ambos presentan el mismo sitio, pero por alguna razón, si dejo de lado la barra diagonal, la URL cambia y se ve muy desagradable.
¿Alguna idea de lo que está pasando con esto? No tengo otras reglas en mi archivo .hyaccess
. También señalaré que http://www.site.com/news/0
y http://www.site.com/news/0/
no sufren el mismo problema. Ambos se redirigen de forma invisible a http://www.site.com/?action=news&start=0
, que es lo que quiero. Solo parece ser un problema con esa tercera regla.
Si ayuda, el sitio está en SourceForge.net.
Una conjetura descabellada: hay un directorio llamado "noticias", y el redireccionamiento automático del directorio Apache "agregar una barra inclinada" está activando e interactuando con su RewriteRule de una manera extraña. Si ese es el caso,
DirectorySlash Off
puede ayudar.