Изучая PHP, я играю с mod_rewrite и CodeIgniter. Я правильно настроил файл .htaccess с помощью
RewriteEngine On RewriteRule ^(resources)/(.*) $1/$2 [L] RewriteRule ^(user_guide)/(.*) $1/$2 [L] RewriteRule (.*) index.php?$1 [L]
Я понимаю немного регулярного выражения и могу оценить, что здесь происходит. Правила перезаписи применяются, а сервер обрабатывает конечный URL, который в приведенном выше случае привязывает index.php (фронт-контроллер) к «симпатичному» URL-адресу. Все идет нормально.
Теперь я хочу шаблон URL:
/<person-name>/at/<place>
перевести на:
/index.php/person/list?personName=$1&place=$2
И я обрабатываю запрос в моей функции списка в контроле пользователя. Я не понимаю, почему следующее не работает:
RewriteRule ^([az]+)/(at)/([az]+)$ index.php/person/list?personName=$1&place=$2 [L]
Что я делаю неправильно / где мое понимание ошибочно? Я вижу, что заполнители правильно извлечены ($ 1 и $ 3), однако он выдает CodeIgniter 404.
Большое спасибо!