У меня есть следующие утверждения в файле .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 и номера совпадений, которые показаны там, это числа, которые вы можете использовать в качестве переменных. Вам придется заключить эти «группы» в скобки, чтобы использовать их в качестве переменных.