apache - how - linux mod_rewrite
mod_rewrite ''agregar informaciĆ³n de ruta postfijo:'' (3)
¿Por qué mi mod_rewrite está haciendo esto?
add path info postfix: /home/mobelluk/public_html/about.php -> /home/mobelluk/public_html/about.php/
que da como resultado una barra inclinada no deseada en TODO.
He desactivado todas mis reglas de .htaccess por lo que están fuera de la ecuación.
¿Es posible que el nuevo servidor tenga mod_dir cargado, con DirectorySlash On
donde el antiguo no y eso está llevando a este problema?
(Tenga en cuenta que DirectorySlash On
es el valor predeterminado si se carga mod_dir
y nada lo mod_dir
)
aparentemente ha habido un problema con mod_rewrite volver a agregar la pieza post-fix en ciertos casos https://issues.apache.org/bugzilla/show_bug.cgi?id=38642
El problema:
Si coinciden varias RewriteRules dentro de un archivo .htaccess, pueden acumularse copias no deseadas de PATH_INFO al final del URI.
Si está en Apache 2.2.12 o posterior, puede usar el indicador DPI para evitar esto http://httpd.apache.org/docs/2.2/rewrite/flags.html
Resolví este problema al deshabilitar MultiViews en mi configuración de Opciones de host virtual. Estaba reescribiendo algo similar a lo siguiente:
Reescribir deseado:
/dir/ -> /dir.html
Traducciones reales:
/dir/ -> /dir.html (MultiViews)
/dir.html -> /dir.html/ (mod_rewrite: 404, didn''t exist)
Al deshabilitar MultiViews, se mantuvo la traducción inicial. Probablemente podría haber ajustado la regla de reescritura para compensar esto, pero de todos modos no estaba usando MultiViews para nada más.
La siguiente publicación me avisó sobre este problema: https://velenux.wordpress.com/2012/07/17/apache-mod_rewrite-multiple-add-path-info-postfix/#comment-1476