Как настроить переадресацию в htaccess?

Хочу, чтобы запросы вида:

site.ru/dir/value
site.ru/dir/value/

переадресовывались на адрес:

site.ru/dir/index.php?key=value

Что для этого нужно прописать в htaccess?

Я пробовал так:

RewriteRule ^dir/([^/]+)?$ /dir/index.php/?id=$1 [L,QSA]

Это работает, если в конце запроса нет слеша. А если слеш в конце, то ошибка:

The requested URL was not found on this server

Ответы (1 шт):

Автор решения: pgood

Для этого потребуется проверить значение в %{HTTP_HOST}, где обычно содержится имя домена и %{REQUEST_URI} где лежит часть запрошенного URL после имени домена и до GET-параметров

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{HTTP_HOST} ^site.ru$
    RewriteCond %{REQUEST_URI} ^(/dir/)(value)/?$
    RewriteRule . %1index.php?key=%2 [L,QSA]
</IfModule>
→ Ссылка