pagina ocultar navegador index enmascarar eliminar direcciones barra apache .htaccess mod-rewrite redirect rewrite

apache - ocultar - mod_rewrite: eliminar la barra inclinada(¡solo una!)



ocultar url php barra direcciones (4)

Uso mod_rewrite / .htaccess para URL bonitas.

Estoy usando esta condición / regla para eliminar barras diagonales (o más bien: reescribir a la URL no rastreada, mediante un redireccionamiento 301; lo hago para evitar el contenido duplicado y porque me gustan las URL sin barras inclinadas) mejor):

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{HTTP_HOST} !^/.localhost$ [NC] RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

Trabajando bien hasta ahora. Único inconveniente:
también reenvía "URL de seguimiento múltiple" -URL a URL-de-seguimiento-no- seguidas .

Ejemplo:
http://example.tld/foo/bar////// hacia adelante a http://example.tld/foo/bar
mientras que solo quiero http://example.tld/foo/bar/ para reenviar a http://example.tld/foo/bar .

Por lo tanto, ¿es posible eliminar solo las barras al final si solo se trata de una barra inclinada?

¡Lo siento si esta es una pregunta algo molesta o extraña!

Gracias.


Aquí hay una solución basada en mod-alias para eliminar la barra final de URL:

RedirectMatch ^/(.*?)/$ /$1

Puede usar el redireccionamiento anterior en su archivo htaccess o server.config.

Esto redirigirá / uri / a * / uri **.


cambie la regla de reescritura a:

RewriteRule ^(.+[^/])/$ http://%{HTTP_HOST}/$1 [R=301,L]

en inglés: coincide con el inicio de la cadena, una o más cosas, NO una barra, una barra, el final.


la siguiente regla coincidirá con cualquier URL que termine en una barra inclinada y eliminará todas las barras al final:

RewriteRule ^(.*)/+$ $1 [R=301,L]

Nota: La respuesta actualmente aceptada solo funciona para http, no https, pero esta funciona para ambos.


^(.+[^/])/$

Es decir, el personaje anterior no debe ser una barra.