удаление косой черты в URL-адресе, но сохранение ее в некоторых конкретных случаях в htaccess
-
02-01-2020 - |
Вопрос
Я знаю, как убрать косую черту после 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]
Не связан с StackOverflow