Domanda

So come rimuovere le barre dopo l'URL, e so come aggiungerlo anche:

# remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/$ /$1 [L,R=301]

# add trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*[^/]$ /$0/ [L,R=301]
.

Quello che voglio è rimuovere tutte le barrette in modo che tutti gli URL non abbiano le barrette al fine, ma in un caso l'URL dovrebbe contenere la barra.

1.) Quindi solo in questo caso dovrebbe aggiungere una barra:

example.com/en -> example.com/en /

2.) In qualsiasi altro caso la barra deve essere rimosso:

example.com/us/ -> example.com/us

example.com/it/product/ -> example.com/it/product

Come farlo con .htaccess regole?

È stato utile?

Soluzione

è una domanda strana.
Ad ogni modo, puoi inserire questo codice nella tua htaccess (che dovrebbe essere nella cartella root)

RewriteEngine on

# add trailing slash when url is /en
RewriteRule ^en$ /en/ [R=301,L]

# otherwise, remove trailing slash (except for /en/ and existing folders)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/en/$ [NC]
RewriteRule ^(.+)/$ /$1 [R=301,L]
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top