Answer the question
In order to leave comments, you need to log in
How to add a backslash at the end of a domain and part of sections using htaccess?
Can you please tell me how to add a backslash at the end of the domain and part of the sections using htaccess? For example, the main domain:
site.ru -> to site.ru/
Subfolders of the first level are also redirected:
site.ru/content > site.ru/content/
site.ru/article > site.ru/article/
And the second level of nesting is not redirected :
and site.ru/content/8, site.ru/content/8name, etc. no need to redirect
Answer the question
In order to leave comments, you need to log in
strange in general, usually they either follow double pages or not, but partially ???? this is why
Now look
1. you can’t add it everywhere / for example, you can’t add it to an html file, so you also need a rule that monitors such garbage
2. if you just need a slash after the domain, put it in where / where and that’s all
3. If you need at a certain level, let's say 3, then write it in condition
4. If you need to get rid of duplicates, then
############################################################################
#### Убираем повторяющиеся слеши (/) в URL ####
############################################################################
RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
# Проверяем, повторяется ли слеш (//) более двух раз.
RewriteRule . %1/%2 [R=301,L]
# Исключаем все лишние слеши.
############################################################################
#### Убираем слеши в конце URL для статических файлов (содержит точку) ####
############################################################################
RewriteCond %{REQUEST_URI} \..+$
# Если файл содержит точку.
RewriteCond %{REQUEST_FILENAME} !-d
# И это не директория.
RewriteCond %{REQUEST_FILENAME} -f
# Является файлом.
RewriteCond %{REQUEST_URI} ^(.+)/$
# И в конце URL есть слеш.
RewriteRule ^(.+)/$ /$1 [R=301,L]
# Исключить слеш.
############################################################################
#### Добавляем слеш(/), если его нет, и это не файл. ####
############################################################################
RewriteCond %{REQUEST_URI} !(.*)/$
# Если слеша в конце нет.
RewriteCond %{REQUEST_FILENAME} !-f
# Не является файлом.
RewriteCond %{REQUEST_URI} !\..+$
# В URL нет точки (файл).
RewriteRule ^(.*)$ $1/ [L,R=301]
# Добавляем слеш в конце.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question