Перенаправление с использованием регулярного выражения в .htacces - PullRequest
0 голосов
/ 29 марта 2019

Мне нужно перенаправить URL-адреса типа www.site.com/?page=user?id=5 на что-то вроде www.site.com/users/5

Я написал это регулярное выражение .*\?page=(.*)&id=(.*) Но, похоже, оно не работает?

Правило полного перенаправления:

Redirect 302 ^/.*index.php\?page=(.*)&id=(.*) /$1/$2

1 Ответ

0 голосов
/ 29 марта 2019
Директива

Redirect работает только по URL-адресу, т.е. /index.php часть после ? является частью QUERY_STRING, и ее нельзя сопоставить с помощью Redirect, вам необходимо использовать mod-rewrite

RewriteEngine on

RewriteCond %{QUERY_STRING} ^page=([^&]+)&id=(.+)$ [NC]
RewriteRule ^index\.php$ /%1/%2? [L,R]
...