Как настроить переадресацию в 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>