Rimozione della barra finale nell'URL ma conservandolo in alcuni casi specifici in HTACCESS
-
02-01-2020 - |
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?
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