A
A
Alexander2015-08-31 12:17:17
Apache HTTP Server
Alexander, 2015-08-31 12:17:17

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

1 answer(s)
S
ShamblerR, 2015-09-04
@vaserguy

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 question

Ask a Question

731 491 924 answers to any question