htaccess и вывод PHP

118
27 апреля 2018, 12:50

Как через .htaccess сделать так, чтобы при заходе на:

  • site.com/site работал обработчик site.php
  • site.com/test работал обработчик test.php
  • site.com/category/{dynamic-category-name} работал обработчик category.php?
Answer 1

Можете показать простейший пример?

Для первого правила простейшим сопоставлением будет выражение site/?, где /? обозначает необязательный слэш в конце строки. Чтобы написать сопоставление данного паттерна нужному вам обработчику, следует воспользоваться директивой RewriteRule.

Формат синтаксиса директивы, согласно документации, имеет следующий вид^

RewriteRule Pattern Substitution [flags]

где pattern это ваш шаблон для сопоставления url, substitution это замена, т.е. куда этот запрос перенаправляется. Далее указываются флаги.
Чаще всего, наверное, используются флаги L (остановить просмотр правил) и QSA (добавлять исходные параметры запроса).

отсюда следует, что простейшим примером для вашей первой URL будет

RewriteRule    ^site/?$     site.php    [L, QSA]

Очевидно, что для test, правило будет аналогичным. Также вы можете написать и общее правило для этих двух выражений, используя группы и обратные ссылки.

RewriteRule   ^(site|test)/?$   $1.php    [L,QSA]

Здесь в скобках обозначена группа захвата, внутри нее | обозначает или, а $1 в замене обозначает ссылку на эту группу (на первую группу). Групп может быть несколько.

Для реализации последней ссылки вам тоже понадобятся группы, но теперь в группу будет попадать название категории.

RewriteRule    ^category/(.*)    category.php?cat=$1   [L,QSA]

тут . обозначает любой символ, а * - ноль и более повторений.

READ ALSO
Правильный запрос к MySQL?

Правильный запрос к MySQL?

Всем привет! Ниже запрос к БД

105
checkout в woocommerce

checkout в woocommerce

Я не силен в javascript, но может кто подскажет:

134
Связи associated в Cake PHP 3.6

Связи associated в Cake PHP 3.6

использую плагин CakeDCхочу к таблице users привязать другую таблицу player_heroes

138
Нет изменений при вызове процедуры в WP

Нет изменений при вызове процедуры в WP

Есть такая часть кода, которая не работает

104