mod-rewrite - mod_rewrite - url amigables htaccess
¿Cómo volver a escribir las URL que tienen un% 20 accidental al final? (1)
Terminé con un montón de vínculos de retroceso a mi sitio que tienen la URL correcta, excepto que había un espacio final accidental por lo que los enlaces salieron con un %20
final, lo que causa un error de página no encontrada.
Intenté variaciones sobre esto:
RewriteRule ^/%20 /
pero no está funcionando.
¿Es necesaria una declaración RewriteCond
?
Tenga en cuenta que este es un servidor IIS 6, y estas son páginas de WordPress que estoy vinculando.
Alguien dígale el código secreto para deshacerse de un %20
al final de una URL.
¡Gracias!
Puede redirigir permanentemente todas las URLs preocupadas que tienen un %20
posterior a la misma url sin el %20
final siguiendo la siguiente regla:
Si usa UrlDecoding Off
en su iirf.ini
, use:
RedirectRule (.*)%20$ $1 [R=301]
De lo contrario, IIRF decodifica automáticamente la URL por usted antes de intentar aplicar las reglas. Por lo tanto, puede usar:
RedirectRule (.*)/s$ $1 [R=301]
Para probar esto usando testdriver.exe
:
- Coloque la regla anterior en un archivo llamado
iirf.ini
. Cree un archivo llamado
SampleUrls.txt
contenga algunas URL de prueba, por ejemplo:/ NO REWRITE /%20 REDIRECT 301 / /article NO REWRITE /article%20 REDIRECT 301 /article
- Llame a testdriver con un comando similar a
%iirfpath%/testdriver.exe -d .
Tenga en cuenta: testdriver no decodifica las URL.
Debería obtener un resultado similar al siguiente (eliminé algunas líneas nuevas):
TestDriver: linked with ''Ionic ISAPI Rewriting Filter (IIRF) 2.1.1.28 x64 RELEASE''.
TestDriver: The IIRF library was built on ''Aug 8 2011 02:26:29''
Processing URLs...(./SampleUrls.txt)
***
Retrieving server variable that is not supported by TestDriver (SCRIPT_NAME)
NO REWRITE ''/'' ==> --
OK
***
Retrieving server variable that is not supported by TestDriver (SCRIPT_NAME)
REDIRECT 301 ''/%20'' ==> ''/''
OK
***
Retrieving server variable that is not supported by TestDriver (SCRIPT_NAME)
NO REWRITE ''/article'' ==> --
OK
***
Retrieving server variable that is not supported by TestDriver (SCRIPT_NAME)
REDIRECT 301 ''/article%20'' ==> ''/article''
OK
0 Errors in 4 Total Trials