У меня есть такие URL /?test, который я хочу переписать на /page.php?page=test
/?test
/page.php?page=test
Я пытался так, но по какой-то причине это не работает.
RewriteRule ^\?([a-z0-9\-\+]{3,20})/?$ /page.php?page=$1 [NC,QSA]
Что я делаю не так?
Строка запроса может быть протестирована только с директивой RewriteCond . Шаблон RewriteRule проверяется только по URL-пути (в файлах .htaccess путь URL-адреса без префикса для каталога).
RewriteCond
RewriteRule
Так попробуйте это:
RewriteCond %{QUERY_STRING} ^[a-z0-9-+]{3,20}$ [NC] RewriteRule ^$ /page.php?page=%0 [QSA]