Estoy tratando de sortear una solicitud incorrecta HTTP 400 con Apache que se produce cuando se accede a esta URL (dominio real redactado):
http://example.com/nw/f/RUD/E.enc<space>
La URL termina con un carácter de espacio real, lo que genera una solicitud incorrecta HTTP 400. No puedo hacer que los clientes soliciten esto para eliminar el espacio en la URL, por lo que necesito volver a escribir la URL sin espacios.
Probé algunas RewriteRules, como esta (después de habilitar RewriteEngine):
RewriteRule "^/nw/f/RUD/E(.*)$" /nw/f/RUD/E.enc [P]
RewriteRule no tiene efecto y sigue dando un HTTP 400.
Incluso sucede cuando escapo el carácter de espacio en lugar de usar el comodín en la regla. Lo mismo si trato de reemplazar la página de error HTTP 400 para llevar al contenido real (que no sería ideal, ya que hay 4 archivos diferentes).
¿Cómo puedo reescribir correctamente la URL, eliminando el espacio en ella, sin obtener HTTP 400?
Su RewriteRule produce un bucle de redirección como .../E.enc<space> y .../E.enc ambos coinciden con .../E(.*)$ . Mejor use un edirect [R] , aunque el proxy también funciona.
RewriteEngine On RewriteRule "^/nw/f/RUD/E\.enc $" /nw/f/RUD/E.enc [R,L]o más corto
RewriteEngine On RewriteRule "^(/nw/f/RUD/E\.enc) $" $1 [R,L]