Por favor, explique a substituição em RewriteRule

1

Eu tenho as seguintes declarações em um arquivo .htaccess

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

Funciona bem. Eu basicamente encontrei um código de exemplo e o modifiquei para o meu propósito específico. O que eu não entendo é:

Por que $ 1 se refere à parte do URL fornecido após o nome do host - onde está a documentação para isso? Não há backreference no RewriteCond.

    
por Scott 13.08.2013 / 17:55

2 respostas

1

Após ler e testar mais, parece que o $ 1 está referenciando a referência anterior do RewriteRule. Como as regras e condições de reescrita são padronizadas para a string de URI, a regra de reconfiguração está dizendo:

Take the URI string and add it to the end of https://myNewDomainurl.com/

    
por 13.08.2013 / 20:52
1

$1 refere-se a tudo com o qual o .* -regex corresponde. Na maioria dos casos, isso será tudo após a barra. Você pode testar essas consultas em sites como Rubular.com e os números das correspondências mostradas lá, esses são os números que você pode usar como variáveis . Você terá que agrupar esses 'grupos' entre colchetes para usá-los como variáveis.

    
por 13.08.2013 / 17:58