удаление косой черты в URL-адресе, но сохранение ее в некоторых конкретных случаях в htaccess

StackOverflow https://stackoverflow.com//questions/25081176

Вопрос

Я знаю, как убрать косую черту после URL-адреса, а также знаю, как ее добавить:

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

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

Я хочу удалить все косые черты, чтобы все URL-адреса не имели косых черт в конце, но в одном случае URL-адрес ДОЛЖЕН содержать косую черту.

1.) Так что только в этом случае следует добавить косую черту:

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

2.) В любом другом случае косую черту следует убрать:

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

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

Как это сделать с помощью правил .htaccess?

Это было полезно?

Решение

Это странный вопрос.
В любом случае, вы можете поместить этот код в свой htaccess (который должен находиться в 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]
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top