Pregunta

Necesito configurar algunas RewriteRules para redirigir una URL que tenga un espacio. He intentado esto:

RewriteRule ^article/with%20spaces.html$ /article/without_spaces.html [R=301,L]

... pero no funciona. Poner un espacio en lugar de% 20 provoca un error interno del servidor 500. ¿Cómo agrego un espacio?

¿Fue útil?

Solución

Intenta poner un \ delante de tu espacio para escapar.

RewriteRule ^article/with\ spaces.html$ /article/without_spaces.html [R=301,L]

Otros consejos

Puedes escapar del espacio con un \

RewriteRule ^article/with\ spaces.html$ /article/without_spaces.html [R=301,L]

Si desea evitar la complejidad de escapar de cada espacio (por ejemplo, si planea generar este archivo automáticamente), puede simplemente usar comillas:

RewriteRule "^article/with spaces.html
RewriteRule "^article/with spaces.html<*>quot; "/article/without_spaces.html" [R=301,L]
quot; /article/without_spaces.html [R=301,L]

Además, estas citas se pueden usar para encerrar cualquier argumento esperado:

<*>
RewriteRule ^article/with[\ |%2520]spaces.html$ /article/without_spaces.html [R=301,L]

La primera opción reemplaza un espacio mientras que la segunda reemplaza% 20 codificado en la url.

Ah, he encontrado una solución: use el estilo regex para mostrar un espacio:

RewriteRule ^article/with\sspaces.html$ ...

Sin embargo, sospecho que esto también coincidiría con todos los demás caracteres de espacio en blanco (pestañas, etc.), pero no creo que vaya a ser un gran problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top