RewriteRule / [L,R=301]
Не соответствует URL-адресу примера. Вам не хватает первого аргумента ( Pattern ), который соответствует запрошенному URL-пути:
RewriteRule Pattern Substitution [ flags ]
Ваш пример URL предназначен только для документа root (/
), поэтому в .htaccess
:
это должно быть записано, как показано ниже
RewriteCond %{QUERY_STRING} ^\d+=$
RewriteRule ^$ / [R=301,L]
В .htaccess
URL-путь, соответствующий шаблону RewriteRule
, не включает префикс sla sh (поэтому исходная директива не будет соответствовать).
Обратите внимание, что это «перенаправление», а не «перезапись», как указано в заголовке вашего вопроса.
Однако, если это совершенно недействительные запросы (возможно, даже ботом?), Тогда не было бы предпочтительнее просто вернуть 403 или 404? Например:
RewriteRule ^$ - [F]
ИЛИ
RewriteRule ^$ - [R=404]
?
Ссылка:
https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#rewriterule