Options +FollowSymLinks
RewriteEngine On
# включает редиректы
RewriteCond %{REQUEST_URI} ^(.*)/index\.html$
# URL cодержит index.php в конце.
RewriteCond %{REQUEST_METHOD} =GET
# Выявляем GET запрос в URL (не POST).
RewriteRule ^(.*)$ %1/ [R=301,L]
# Удалить index.htmlиз URL.
RewriteCond %{REQUEST_FILENAME} !-f
# если в урле не файл
RewriteCond %{REQUEST_FILENAME} !-l
# если в урле не линка (ярлык короче)
RewriteCond %{REQUEST_FILENAME} !-d
# если это не директория
RewriteCond %{QUERY_STRING} (^|&)section\=(.+)($|&)
# Если есть гет запрос setctiin= и он не пустой, то выделяем все что после равно ( только этого запроса)
RewriteCond %{REQUEST_FILENAME} !/index\.php$
# Если это не индекс php ( для исключения цикла)
RewriteRule ^(.*)$ /index.php\?section=%2? [L]
# То перенаправляем на индекс пхп, добавляем гет параметр секшен, вставляем вторую скобку из правила с гет параметром.
пример
Переменные в апаче работают но назвать их космический тоже рука не позволяет, ошибки могут быть самых тупых местах, к примеру строка ерор лог не поддерживает регулярных выражений в принципе и считывается как строка и твоя переменная так и будет записана текстом.
2. есть вот такая тема, возможно тебе поможет
https://apache-windows.ru/srvroot-%D0%B8-srvroot/
3. все это легко сделать если у тебя nginx+apache