@Matilda-kot

Как мне настроить .htaccess?

Здравствуйте, подскажите, пожалуйста, как мне настроить .htaccess.

У меня единая точка входа, корень сайта - папка public, есть роутинг - index.php разбирает URL, получает path и вызывает соот. контроллер.

Сейчас файл .htaccess выглядит так:

RewriteEngine on
RewriteRule .htaccess - [F]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ /index.php

Я пытался разобраться как писать правила и условия.

Но до меня никак не дойдет.

Мне нужно сделать так, чтобы сайт отдавал изображения, стили и т.д., но все остальные файлы шли через index.php

Что мне нужно изменить в коде htaccess, чтобы это сделать?

Мб кто-нибудь наведет на мысль, почему я туплю?
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
@Matilda-kot Автор вопроса
RewriteEngine on
RewriteRule .htaccess - [F]
RewriteRule ^.*\/styles\/(.*)\.css$ /styles/$1.css [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
добавить файлы статики в исключения. Хотя по идее у вас и так перенаправляться будут только отсутствующие файлы и папки...
RewriteCond %{REQUEST_URI} !\.(css|jpg|gif|png|zip|rar|doc|xls|js|tif|tiff|docx|xlsx|ico)$
RewriteRule ^(.*)$ index.php [L,QSA]
Ответ написан
@aspirantes
Разные способы есть, один из топорных.

RewriteRule ^картинка /img/image.jpg [L]
RewriteRule ^скрипты /assets/js/app.min.js [L]
RewriteRule ^стиль /assets/css/style.min.css [L]
RewriteRule ^command/([абвгдеёжзийклмнопрстуфхцчшщьыъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯA-Za-z0-9-_]+)$ /php/ajax.php?get1=$1 [L]
RewriteRule ^([абвгдеёжзийклмнопрстуфхцчшщьыъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯA-Za-z0-9-_]+)/([абвгдеёжзийклмнопрстуфхцчшщьыъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯA-Za-z0-9-_]+)/([абвгдеёжзийклмнопрстуфхцчшщьыъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯA-Za-z0-9-_]+)$ /index.php?get1=$1&get2=$2&get3=$3 [L]
RewriteRule ^([абвгдеёжзийклмнопрстуфхцчшщьыъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯA-Za-z0-9-_]+)/([абвгдеёжзийклмнопрстуфхцчшщьыъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯA-Za-z0-9-_]+)$ /index.php?get1=$1&get2=$2 [L]
RewriteRule ^([абвгдеёжзийклмнопрстуфхцчшщьыъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯA-Za-z0-9-_]+)$ /index.php?get1=$1 [L]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы