Как через .htaccess
сделать так, чтобы при заходе на:
site.com/site
работал обработчик site.php
site.com/test
работал обработчик test.php
site.com/category/{dynamic-category-name}
работал обработчик category.php
?Можете показать простейший пример?
Для первого правила простейшим сопоставлением будет выражение 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]
тут .
обозначает любой символ, а *
- ноль и более повторений.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
использую плагин CakeDCхочу к таблице users привязать другую таблицу player_heroes