Почему правило в htaccess файле не выполняется?

Как настроить перенаправление с адреса `site.ru/15` на `site.ru/15/index.php`, не меняя отображаемый url в браузере? Текущее правило работает, но добавляет к url окончательный слеш. Как исправить ситуацию и сохранить исходный url?
  • 21 июля 2024 г. 18:22
Ответы на вопрос 2
Если правило в `.htaccess` файле не выполняется, возможно, есть ошибка в самом правиле или оно перекрывается другими правилами в файле или в других конфигурационных файлах сервера.

Чтобы настроить перенаправление с адреса `site.ru/15` на `site.ru/15/index.php` без изменения отображаемого URL в браузере и без добавления окончательного слеша, можно использовать следующее правило в файле `.htaccess`:

```apache
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/15/index.php
RewriteRule ^15$ /15/index.php [L]
```

Это правило проверит, что URL не уже `/15/index.php` и перенаправит все запросы с `/15` на `/15/index.php`, не изменяя отображаемый URL в браузере.
на выходе получается url с конечным слешем.

/15/ это существующий каталог и mod_dir добавляет завершающий слеш.
Чтобы отключить это нужно добавить DirectorySlash off
В файл /15/.htaccess или /.htaccess
Похожие вопросы