Адрес страницы совпадает с именем директори в файловой системе
Необходимо сделать url страницы site.com/catalog, но дело в том, что в корне сайта есть директория с именем catalog, поэтому я получаю ошибку 403 при обращении к этому адресу. Как можно в htaccess решить эту задачу? Ниже некоторые из директов в htaccess
Options All -Indexes -Includes +FollowSymLinks
если это не папка, не файл и не файл конкретного формата
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|webp|js|css|svg)
перенаправляем все запросы на файл index.php, все что в url до вопросительного знака пишем в get-параметр _route_
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
Ответы (2 шт):
Автор решения: teran
→ Ссылка
Видимо что-то вроде подобного
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond %{REQUEST_URI} ^catalog/?$
либо до этих правил написать отдельное
RewriteRule ^catalog/?$ index.php?route=catalog [L,QSA]
Автор решения: Kot
→ Ссылка
Решил вопрос следующим образом. Сперва отключил автоматическое добавление слешей директориям, чтобы не было редиректов.
# лучше не использовать если включен Options +Indexes
DirectorySlash Off
И потом дополнил текущее условие
# REQUEST_URI начинается со слеша
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond %{REQUEST_URI} ^/catalog/?$