Назад | Перейти на главную страницу

Не могли бы вы объяснить замену в RewriteRule

У меня есть следующие утверждения в файле .htaccess

RewriteCond %{HTTP_HOST} ^myOldDomain\.com$ [NC]
RewriteRule  ^(.*)$ https://myNewDomaink.com/$1 [R=301,L]

Работает нормально. Я в основном нашел образец кода и изменил его для своей конкретной цели. Я не совсем понимаю:

Почему $ 1 относится к части предоставленного URL-адреса после имени хоста - где для этого документация? В RewriteCond нет обратной ссылки.

После дальнейшего чтения и экспериментов, похоже, что $ 1 ссылается на обратную ссылку из RewriteRule. Поскольку правила и условия перезаписи по умолчанию соответствуют строке URI, правило перезаписи говорит:

Возьмите строку URI и добавьте ее в конец https://myNewDomainurl.com/

$1 относится ко всему .*-regex соответствует. В большинстве случаев это будет все после косой черты. Вы можете протестировать эти запросы на таких сайтах, как Rubular.com и номера совпадений, которые показаны там, это числа, которые вы можете использовать в качестве переменных. Вам придется заключить эти «группы» в скобки, чтобы использовать их в качестве переменных.