Требует ли этот RewriteRule привязки `^` и `$`? - PullRequest
0 голосов
/ 18 апреля 2019

Я видел следующее RewriteRule в нескольких руководствах.

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Мой вопрос касается соответствия шаблону:

  • ^(.*)$ - Совпадение с любым, но убедитесь, что перед «чем-либо» стоит начало строки, а за ней следует конец строки. ?♂️
  • (.*) - Совпадение с чем угодно

Шаблон сопоставления ^(.*)$ представляется излишне многословным. Разве (.*) недостаточно?

(я усвоил урок о том, как сложно протестировать RewriteRules, поэтому я решил, что стоит попросить убедиться, что я не пропустил что-то очевидное)

1 Ответ

2 голосов
/ 18 апреля 2019

Не просто ^ и $ не нужны, даже группа (.*) здесь не нужна, так как вы не используете $1 в качестве цели.

Вы можете очень хорошо написать свое правило как:

RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

, что эквивалентно:

RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
...