Страницы

Поиск по вопросам

среда, 4 марта 2020 г.

Как сделать ЧПУ через .htaccess или другим способом

#htaccess #apache #mod_rewrite


Здравствуйте, подскажите как сделать ЧПУ через .htaccess или другим способом. На
данный момент пытаюсь реализовать через .htaccess, но что-то не так.

Ситуация такая что использую одну точку входа через index.php, может это как-то влияет. 

Вот .htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule ^([a-z]+)/([a-z]+)/$ ?country=$1®ion=$2&city=$3 [QSA,L]
RewriteRule .* index.php [L]

    


Ответы

Ответ 1



Если у вас уже единая точка входа (это хорошо) и нет зависимости от .htaccess (это хорошо), то не надо добавлять зависимость от .htaccess и терять достоинства единой точки входа: весь роутинг в одном месте, независимость от сервера. Разбирайте ваш URL прямо в index.php. Подробнее: Как сделать всё и сразу в mod_rewrite? P. S. Не могу закрыть как дубликат вопрос под конкурсом. P. P. S. Уже ничего не помню про .htaccess, но в вашем коде, вроде, проблема в том, что все преобразования повешены на одно условие.

Ответ 2



.htaccess проходится повторно, если были изменения строки запроса условиями. Осторожнее с .* иначе все запросы будут попадать именно туда. Можно использовать [END] для остановки повторного прохода. [L] останавливает парсинг, но не отменяет повторный проход

Комментариев нет:

Отправить комментарий