Show Menu
TÓPICOS×

Sobre o menu Regras de regravação

Use o menu Regras de regravação para definir o URL de pesquisa e as regras de título.

Sobre Regras de URL do Repositório de Lista de Rastreamento

As Regras de URL de rastreamento especificam como os URLs encontrados no conteúdo da Web são reescritos. Você pode especificar um número ilimitado de regras e condições e pode manipular qualquer parte dos URLs encontrados.
As regras de rastreamento são mais úteis para regravar partes dinâmicas de um URL, como um identificador de sessão exclusivo para cada cliente que visita seu site. Você também pode usar regras de regravação para ocultar partes de um URL, como parâmetros de consulta, do robô de pesquisa. Por padrão, nenhuma regra é especificada e nenhuma regravação de URL é realizada.
À medida que um site é rastreado, os URLs de conteúdo incorporado são armazenados em uma lista temporária de páginas da Web adicionais a serem rastreadas. Antes de um URL ser adicionado a essa lista, as regras de regravação da Loja são aplicadas a ele. Normalmente, as regras de regravação de armazenamento são usadas para remover uma ID de sessão de um URL ou para aplicar uma ID de sessão específica para o rastreamento. Quando o robô de pesquisa recupera um URL da lista, as regras de regravação de recuperação são usadas para manipular partes desse URL novamente. Geralmente, as regras de recuperação são usadas para inserir dados sensíveis ao tempo de volta no URL. É este URL final que é usado para recuperar a página do seu site.
Normalmente, você usa Regras de URL de loja exclusivamente. As Regras de URL de recuperação só são necessárias se os URLs contiverem dados dinâmicos, como uma ID de sessão, e se esses dados dinâmicos mudarem ao longo do tempo para permanecerem válidos. Nesse caso, use Regras de URL de loja para obter o estado mais recente dos dados dos URLs encontrados. Em seguida, use a opção Recuperar regras de URL para adicionar esses dados a cada URL quando o robô de pesquisa tentar recuperar a página.
Cada regra é especificada com uma diretiva de regra de regravação (RewriteRule) e uma ou mais condições de regravação opcionais (RewriteCond). A ordem das regras é importante. O conjunto de regras é repetido por regra. Quando uma regra corresponde, ela repete todas as condições de regravação correspondentes. Uma regra de URL de rastreamento é especificada da seguinte maneira:
RewriteCond TestString CondPattern [Flags] 
RewriteRule Pattern Substitution [Flags]

Quando um URL incorporado é encontrado, o robô de pesquisa tenta corresponder o URL ao Padrão de cada regra de rastreamento. Se o padrão corresponder, o mecanismo de regravação procurará as diretivas RewriteCond correspondentes. Se nenhuma condição estiver presente, o URL será substituído por um novo valor construído a partir da string Substituição e continuará com a próxima regra no conjunto de regras. Se houver condições, elas serão processadas na ordem em que estão listadas. O mecanismo de regravação tenta corresponder um padrão de condição (CondPattern) a uma string de teste (TestString). Se as duas corresponderem, a próxima condição será processada até que não haja mais condições disponíveis. Se todas as condições corresponderem, o URL será substituído pela Substituição especificada na regra. Se a condição não for atendida, o conjunto completo de condições e a regra correspondente falharão.

Sobre diretivas RewriteRule

Uma diretiva RewriteRule tem o seguinte formato:
           
<i>RewriteRule Pattern Substitution [Flags]</i> 
        

Pattern pode ser uma expressão regular POSIX, que é aplicada ao URL atual. O "URL atual" pode ser diferente do URL solicitado original, pois regras anteriores podem já ter correspondido e alterado o URL.
Consulte Expressões regulares .
Não é possível usar o caractere "não" ('!') para prefixar o padrão. O caractere "não" permite negar um padrão, ou seja, ser verdadeiro somente se o URL atual NÃO corresponder a esse padrão. O caractere "não" pode ser usado quando é melhor corresponder a um padrão negativo ou como uma regra padrão final.
Não é possível usar o caractere "não" e curingas agrupadas em um padrão. Além disso, não é possível usar um padrão negado quando a string de substituição contém $N.
Você pode usar parênteses para criar uma referência retroativa no padrão, que pode ser referenciada pela Substituição e CondPattern.
Substituição O URL é substituído pela string de substituição, que contém o seguinte:
Texto sem formatação: Texto que é passado inalterado.
As referências retroativas fornecem acesso às partes agrupadas (entre parênteses) do Padrão ou CondPattern. Estes são os dois tipos de referências retroativas:
  • RewriteRule Backreferences Essas referências anteriores correspondem no padrão RewriteRule correspondente e assumem a forma $N (0 <= N <= 9). Por exemplo, RewriteRule ^https:// ([^/]*) (.*)$ https://${tolower: $1} $2.
  • RewriteCond Backreferences Essas referências anteriores correspondem no último RewriteCond Cond CondPattern correspondente e assumem o formato %N (0 <= N <= 9).
Variáveis: São variáveis do formulário % em que NAME_OF_VARIABLE é uma string para o nome de uma variável definida. Consulte o sinalizador *[E]* para obter mais informações sobre como configurar variáveis de ambiente.
Funções: Essas são funções do formulário $, onde NAME_OF_FUNCTION é o seguinte:
  • a opção torna todos os caracteres em minúsculas .
  • o toupper faz com que todos os caracteres fiquem em maiúsculas .
  • URL de escape codifica todos os caracteres na chave .
  • Os caracteres 'a'.z', 'A'..Z', '0'...9', '*', '-', '.', '/', '@' e '_' são deixados inalterados; os espaços são convertidos em '+' e todos os outros caracteres são transformados em seu equivalente codificado em URL %xx.
  • unescape transforma '+' de volta ao espaço e todos os caracteres codificados por URL %xx de volta em caracteres únicos.
Existe uma string de substituição especial: '-' isso significa substituição de NO. A '-' string é usada com o sinalizador C (chain), permitindo que você corresponda um URL a vários padrões antes de ocorrer uma substituição.
Sinalizadores
(opcional) Inclua sinalizadores entre parênteses [] . Vários sinalizadores são separados por vírgulas.
Sinalizador
Descrição
'last|L'
Última regra.
Interrompe o processo de regravação e não aplica regras adicionais de regravação. Use esse sinalizador para impedir qualquer processamento adicional no URL atual.
'next|N'
Próxima rodada.
Executa novamente o processo de regravação (iniciando novamente com a primeira regra de regravação) usando o URL da última regra de regravação (não o URL original). Tenha cuidado para não criar um ciclo de vida!
'chain|C'
Encadeado com a próxima regra.
Encadeia a regra atual para a regra seguinte (que também pode ser encadeada à regra a seguir e assim por diante). Se uma regra corresponde, o processo de substituição continua como de costume. Se a regra não corresponder, todas as regras encadeadas subsequentes serão ignoradas.
'nocase|NC'
Nenhum caso.
Faz com que o Padrão não diferencie maiúsculas de minúsculas (ou seja, não há diferença entre 'A-Z' e 'a-z') quando o padrão é comparado ao URL atual.
'skip|S=num'
Ignore a regra ou as regras seguintes.
Se a regra atual corresponder, esse sinalizador forçará o mecanismo de regravação a ignorar as regras de próximo número no conjunto de regras. Use esse sinalizador para criar construções pseudo if-then-else. A última regra da cláusula then torna-se um skip=N, onde N é o número de regras na cláusula else.
Observação: Este sinalizador não é igual ao sinalizador 'chain|C'!)
'env|E=VAR:VAL'
Define a variável de ambiente.
Cria uma variável ambiental "VAR" definida como valor VAL, onde VAL pode conter referências retroativas de expressões regulares, $N e %N, que são expandidas. Você pode usar esse sinalizador mais de uma vez para definir várias variáveis. As variáveis podem ser removidas posteriormente de referência em um padrão RewriteCond a seguir via %{VAR}.
Use esse sinalizador para retirar e lembrar informações de URLs.
As Regras de regravação da loja e as Regras de regravação da recuperação compartilham valores variáveis. Devido a esse comportamento, é possível definir uma variável para um valor de sessionid que diferencia tempo quando um URL incorporado é encontrado e armazenado. Quando o próximo URL é recuperado da lista de armazenamento temporário, o valor sessionid mais recente pode ser adicionado a ele antes que essa página seja recuperada.
Exemplo de uma RewriteRule com uma função
Suponha que você tenha um servidor que diferencia maiúsculas de minúsculas, que manipule as strings "www.mydomain.com" e "www.MyDomain.com" de forma diferente. Para que o servidor funcione corretamente, verifique se o domínio está sempre "www.mydomain.com" mesmo se alguns documentos contêm links que fazem referência "www.MyDomain.com." Para fazer isso, você pode usar a seguinte regra:
RewriteRule  ^https:// 
<b>([^/]*)</b> 
<i>(.*)</i>$  https://${tolower:$1}$2

Essa regra de regravação usa a função tolower para regravar a parte de domínio de um URL, a fim de garantir que ela sempre esteja em minúsculas, como a seguir:
  1. O Padrão (^https://([^/]*)(.*)$) contém uma referência retroativa ([^/]*) que corresponde a todos os caracteres entre https:// e o primeiro / no URL. O padrão também contém uma segunda referência anterior (.*) que corresponde a todos os caracteres restantes no URL.
  2. A Substituição (https://${tolower:$1}$2) diz ao mecanismo de pesquisa para reescrever o URL usando a tolower função na primeira referência anterior, (https:// ${tolower:$1}$2) deixando o restante do URL intocado (https://${tolower:$1} $2) .
Assim, um URL do formulário https://www.MyDomain.com/INTRO/index.Html é reescrito como https://www.mydomain.com/INTRO/index.Html .

Sobre diretivas RewriteCond

A diretiva RewriteCond define uma condição de regra. Quando um RewriteCond precede uma RewriteRule, a regra é usada somente se seu padrão corresponder ao título atual e as condições adicionais se aplicam. As condições de regravação assumem a seguinte forma:
           
<i>RewriteCond TestString CondPattern [Flags]</i> 
        

TestString é uma string que pode conter as seguintes construções:
Texto simples: Texto que é passado inalterado.
As referências retroativas fornecem acesso às partes agrupadas (entre parênteses) do Padrão ou CondPattern. Estes são os dois tipos de referências retroativas:
  • RewriteRule Backreferences Essas referências anteriores correspondem no padrão RewriteRule correspondente e assumem a forma $N (0 <= N <= 9). Por exemplo, RewriteRule ^https:// ([^/]*) (.*)$ https://${tolower: $1} $2 .
  • RewriteCond Backreferences Essas referências anteriores correspondem no último RewriteCond Cond CondPattern correspondente e assumem o formato %N (0<= N <= 9).
Variáveis: São variáveis do formulário % em que NAME_OF_VARIABLE pode ser uma string para o nome de uma variável definida. Consulte o sinalizador RewriteRule [E] para obter mais informações sobre como configurar variáveis.
Funções: Essas são funções do formulário $, onde NAME_OF_FUNCTION é o seguinte:
  • a opção torna todos os caracteres em minúsculas .
  • o toupper faz com que todos os caracteres fiquem em maiúsculas .
  • URL de escape codifica todos os caracteres na chave. Os caracteres 'a'.z', 'A'..Z', '0'...9', '*', '-', '.', '/', '@' e '_' são deixados inalterados, os espaços são convertidos em '+' e todos os outros caracteres são transformados em seu equivalente codificado em URL. %xx
  • unescape transforma '+' de volta ao espaço e todos os caracteres de codificação de %xx URL em caracteres únicos.
CondPattern é uma Expressão regular estendida padrão com algumas adições. A string de padrão pode ser prefixada com um ! caractere (ponto de exclamação) para especificar um padrão não correspondente. Em vez de strings de expressão regular reais, você pode usar uma das seguintes variantes especiais:
Você também pode prefixar todos esses testes com um ponto de exclamação ('!') negar o seu significado.
Sequência CondPattern
Descrição
'<CondPattern'
Lexicamente menos.
Trata o CondPattern como uma string simples e o compara lexicamente ao TestString. True se TestString for lexicamente menor que CondPattern.
'>CondPattern'
Lexicamente maior.
Trata o CondPattern como uma string simples e o compara lexicamente ao TestString. True se TestString for lexicamente maior que CondPattern.
'=CondPattern'
Lexicamente igual.
Trata o CondPattern como uma string simples e o compara lexicamente ao TestString. True se TestString for lexicamente igual a CondPattern, ou seja, as duas strings serão exatamente iguais (caractere por caractere). Se CondPattern for apenas "" (duas aspas), isso compara TestString à string vazia.
Sinalizadores (opcional) Encaixe sinalizadores entre colchetes [] . Vários sinalizadores são separados por vírgulas.
Sinalizador
Descrição
'nocase|NC'
Nenhum caso.
Esse sinalizador faz com que o teste não diferencie maiúsculas de minúsculas, ou seja, não há diferença entre 'A-Z' e 'a-z' tanto no TestString expandido quanto no CondPattern.
'ornext|OR'
Ou a próxima condição.
Use esse sinalizador para combinar condições de regras com um OU local em vez do E implícito. Sem esse sinalizador, você teria que escrever a segunda/regra várias vezes.
Exemplo
Algumas páginas da Web atribuem uma variável CGI "sessionid" na primeira vez que um visitante chega a um site. Essa variável é usada para identificar o visitante e, à medida que o visitante navega pelo site, a variável é transmitida. Como o robô de pesquisa se parece com um visitante do site, é atribuído um número "sessionid". O robô de pesquisa mantém esse único valor "sessionid", mesmo se uma segunda página do site tentar atribuir um novo valor. Para garantir isso, você precisa de duas regras de regravação.
A primeira regra é usada para identificar e armazenar a variável sessionid:
RewriteCond  %{sessionid}  !.+ 
RewriteRule  ^.+sessionid= 
<b>([^&#]+)</b>.*$  -   
<i>[E=sessionid:$1]</i>

A RewriteRule usa um sinalizador E ([E=sessionid:$1]) para atribuir o valor atual do parâmetro CGI sessionid à variável sessionid . A $1 refere-se à primeira referência retroativa, que está contida entre o primeiro conjunto de parênteses no Padrão de RewriteRule ([^&#]+) .
A expressão regular ^&#]+ corresponde à parte de um URL entre a palavra sessionid e o **&**&#x200B;or&#x200B;**#** caractere seguinte. Como essa RewriteRule é usada apenas para criar o valor inicial para a variável sessionid, ela não regravará. Observe que o campo Substituição da regra está definido para indicar - que nenhuma regravação é necessária.
O RewriteCond examina a variável sessionid ( %{sessionid} ). Se ele não tiver nem mesmo um caractere único (!.+), em seguida, a RewriteRule corresponde.
Usando essa regra, o URL é lido como https://www.domain.com/home/?sessionid=1234&function=start e atribui o valor 1234 à variável sessionid .
A segunda regra é usada para regravar todos os URLs que correspondem ao seguinte padrão RewriteRule:
RewriteRule   
<b>^(.+)</b>sessionid=[^&#]+ 
<i>(.*)$</i>  $1sessionid=%{sessionid}$2

O padrão RewriteRule contém duas referências anteriores: (.+) e (.*) . A primeira referência anterior corresponde a todos os caracteres anteriores sessionid . A segunda referência anterior corresponde a todos os caracteres após o término & ou # .
O padrão de Substituição regrava o URL usando a primeira referência retroativa, seguido pela string "sessionid=", seguida pelo valor da variável de ID da sessão definida pela primeira regra %{sessionid} , seguido pela segunda referência retroativa. ($1sessionid=%{sessionid} $2)
Observe que esta RewriteRule não contém uma RewriteCond. Dessa forma, isso gera uma regravação para todos os URLs que correspondem ao Padrão RewriteRule. Assim, se o valor da variável sessionid ( %{sessionid} ) for 1234 , um URL do formulário https://www.domain.com/products/?sessionid=5678&function=buy será reescrito como https://www.domain.com/products/?sessionid=1234&function=buy

Reconhecimento

O software do mecanismo de regravação foi desenvolvido originalmente pelo Apache Group para uso no projeto do servidor HTTP Apache (https://www.apache.org/).

Adicionando uma regra de URL de armazenamento de lista de rastreamento

Você pode adicionar regras de URL de armazenamento de lista de rastreamento para especificar como os URLs encontrados no conteúdo da Web são regravados. Você pode especificar um número ilimitado de regras e condições e pode manipular qualquer parte dos URLs encontrados.
Para adicionar regras de URL de armazenamento de lista de rastreamento
  1. No menu do produto, clique em Settings > Rewrite Rules > Crawl List Store URL Rules .
  2. No Crawl List Store URL Rules campo, insira as regras desejadas.
    São permitidas linhas em branco e linhas de comentário que começam com um caractere '#' (hash).
  3. (Opcional) Na Crawl List Store URL Rules página, no Test Crawl List Store URL Rules campo, digite um URL de teste cujas regras de rastreamento você deseja testar e clique em Testar .
  4. Clique em Salvar alterações .
  5. (Opcional) Reconstrua o índice do site preparado se desejar visualizar os resultados.
  6. (Opcional) Na Crawl List Store URL Rules página, execute um dos procedimentos a seguir:

Sobre a Lista de rastreamento Recuperar Regras de URL

As Regras de URL de rastreamento especificam como os URLs encontrados no conteúdo da Web são reescritos. Você pode especificar um número ilimitado de regras e condições e pode manipular qualquer parte dos URLs encontrados.
Antes de os efeitos das regras serem visíveis para os clientes, recrie o índice do site.
As regras de rastreamento são mais úteis para regravar partes dinâmicas de um URL, como um identificador de sessão exclusivo para cada cliente que visita seu site. Você também pode usar regras de regravação para ocultar partes de um URL, como parâmetros de consulta, do robô de pesquisa. Por padrão, nenhuma regra é especificada e nenhuma regravação de URL é realizada.
À medida que um site é rastreado, os URLs de conteúdo incorporado são armazenados em uma lista temporária de páginas da Web adicionais a serem rastreadas. Quando o robô de pesquisa recupera um URL da lista, as Regras de regravação de recuperação são usadas para manipular partes desse URL. Normalmente, as regras de recuperação são usadas para inserir dados que fazem distinção de tempo em um URL. É este URL final que é usado para recuperar a página do seu site.
As Regras de regravação só são necessárias se os URLs contiverem dados dinâmicos, como uma ID de sessão, e se esses dados dinâmicos mudarem ao longo do tempo para permanecerem válidos. Nesse caso, use Regras de regravação de armazenamento para obter o estado mais recente dos dados dos URLs encontrados. Em seguida, use a opção Recuperar regras de regravação para adicionar esses dados a cada URL quando os robôs de pesquisa recuperarem a página.
Cada regra é especificada com uma diretiva de regra de regravação (RewriteRule) e uma ou mais condições de regravação opcionais (RewriteCond). A ordem das regras é importante. O conjunto de regras é repetido por regra. Quando uma regra corresponde, ela repete todas as condições de regravação correspondentes. Uma regra de URL de rastreamento é especificada da seguinte maneira:
RewriteCond TestString CondPattern [Flags] 
RewriteRule Pattern Substitution [Flags]

Quando um URL incorporado é encontrado, o robô de pesquisa tenta corresponder o URL ao Padrão de cada regra de rastreamento. Se o padrão corresponder, o mecanismo de regravação procurará as diretivas RewriteCond correspondentes. Se nenhuma condição estiver presente, o URL será substituído por um novo valor construído a partir da string Substituição e continuará com a próxima regra no conjunto de regras. Se houver condições, elas serão processadas na ordem em que estão listadas. O mecanismo de regravação tenta corresponder um padrão de condição (CondPattern) a uma string de teste (TestString). Se as duas corresponderem, a próxima condição será processada até que não haja mais condições disponíveis. Se todas as condições corresponderem, o URL será substituído pela Substituição especificada na regra. Se a condição não for atendida, o conjunto completo de condições e a regra correspondente falharão.

Sobre diretivas RewriteRule

Uma diretiva RewriteRule tem o seguinte formato:
           
<i>RewriteRule Pattern Substitution [Flags]</i> 
        

Pattern pode ser uma expressão regular POSIX, que é aplicada ao URL atual. O "URL atual" pode ser diferente do URL solicitado original, pois regras anteriores podem já ter correspondido e alterado o URL.
Consulte Expressões regulares .
Não é possível usar o caractere "não" ('!') para prefixar o padrão. O caractere "não" permite negar um padrão, ou seja, ser verdadeiro somente se o URL atual NÃO corresponder a esse padrão. O caractere "não" pode ser usado quando é melhor corresponder a um padrão negativo ou como uma regra padrão final.
Não é possível usar o caractere "não" e curingas agrupadas em um padrão. Além disso, não é possível usar um padrão negado quando a string de substituição contém $N.
Você pode usar parênteses para criar uma referência retroativa no padrão, que pode ser referenciada pela Substituição e CondPattern.
Substituição O URL é substituído pela string de substituição, que contém o seguinte:
Texto sem formatação: Texto que é passado inalterado.
As referências retroativas fornecem acesso às partes agrupadas (entre parênteses) do Padrão ou CondPattern. Estes são os dois tipos de referências retroativas:
  • RewriteRule Backreferences Essas referências anteriores correspondem no padrão RewriteRule correspondente e assumem a forma $N (0 <= N <= 9). Por exemplo, RewriteRule ^https:// ([^/]*) (.*)$ https://${tolower: $1} $2.
  • RewriteCond Backreferences Essas referências retroativas correspondem na última RewriteCond Cond CondPattern correspondente e têm o formato %N (0 <= N <= 9).
Variáveis: São variáveis do formulário % em que NAME_OF_VARIABLE é uma string para o nome de uma variável definida. Consulte o sinalizador # para obter mais informações sobre como configurar variáveis de ambiente.
Funções: Essas são funções do formulário $, onde NAME_OF_FUNCTION é o seguinte:
  • a opção torna todos os caracteres em minúsculas .
  • o toupper faz com que todos os caracteres fiquem em maiúsculas .
  • URL de escape codifica todos os caracteres na chave .
  • Os caracteres 'a'.z', 'A'..Z', '0'...9', '*', '-', '.', '/', '@' e '_' são deixados inalterados; os espaços são convertidos em '+' e todos os outros caracteres são transformados em seu equivalente codificado em URL %xx.
  • unescape transforma '+' de volta ao espaço e todos os caracteres codificados por URL %xx de volta em caracteres únicos.
Existe uma string de substituição especial: "-" significa "substituição de NO". A string '-' é usada com o sinalizador C (cadeia), permitindo que você corresponda um URL a vários padrões antes que ocorra uma substituição.
Sinalizadores
Sinalizador
Descrição
'last|L'
Última regra.
Interrompe o processo de regravação e não aplica regras adicionais de regravação. Use esse sinalizador para impedir qualquer processamento adicional no URL atual.
'next|N'
Próxima rodada.
Executa novamente o processo de regravação (iniciando novamente com a primeira regra de regravação) usando o URL da última regra de regravação (não o URL original). Tenha cuidado para não criar um ciclo de vida.
'chain|C'
Encadeado com a próxima regra.
Encadeia a regra atual para a regra seguinte (que também pode ser encadeada à regra a seguir e assim por diante). Se uma regra corresponde, o processo de substituição continua como de costume. Se a regra não corresponder, todas as regras encadeadas subsequentes serão ignoradas.
'nocase|NC'
Nenhum caso.
Faz com que o Padrão não diferencie maiúsculas de minúsculas (ou seja, não há diferença entre 'A-Z' e 'a-z') quando o padrão é comparado ao URL atual.
'skip|S=num'
Ignore a regra ou as regras seguintes.
Se a regra atual corresponder, esse sinalizador forçará o mecanismo de regravação a ignorar as regras de próximo número no conjunto de regras. Use esse sinalizador para criar construções pseudo if-then-else. A última regra da cláusula then torna-se um skip=N, onde N é o número de regras na cláusula else.
Observação: Este sinalizador não é igual ao sinalizador 'chain|C'!)
'env|E=VAR:VAL'
Define a variável de ambiente.
Cria uma variável ambiental "VAR" definida como valor VAL, onde VAL pode conter referências retroativas de expressões regulares, $N e %N, que são expandidas. Você pode usar esse sinalizador mais de uma vez para definir várias variáveis. As variáveis podem ser removidas posteriormente de referência em um padrão RewriteCond a seguir via %{VAR}.
Use esse sinalizador para retirar e lembrar informações de URLs.
As Regras de regravação da loja e as Regras de regravação da recuperação compartilham valores variáveis. Devido a esse comportamento, é possível definir uma variável para um valor de sessionid que diferencia tempo quando um URL incorporado é encontrado e armazenado. Quando o próximo URL é recuperado da lista de armazenamento temporário, o valor sessionid mais recente pode ser adicionado a ele antes que essa página seja recuperada.
Exemplo de uma RewriteRule com uma função
Suponha que você tenha um servidor que diferencia maiúsculas de minúsculas, que lida com as strings "www.mydomain.com" e "www.MyDomain.com" de forma diferente. Para que o servidor funcione corretamente, verifique se o domínio é sempre "www.mydomain.com", mesmo que alguns documentos contenham links que façam referência a "www.MyDomain.com". Para fazer isso, você pode usar a seguinte regra:
RewriteRule  ^https:// 
<b>([^/]*)</b> 
<i>(.*)</i>$  https://${tolower:$1}$2

Essa regra de regravação usa a função tolower para regravar a parte de domínio de um URL, a fim de garantir que ela sempre esteja em minúsculas, como a seguir:
  1. O Padrão (^https://([^/]*)(.*)$) contém uma referência retroativa ([^/]*) que corresponde a todos os caracteres entre https:// e o primeiro / no URL. O padrão também contém uma segunda referência anterior (.*) que corresponde a todos os caracteres restantes no URL.
  2. A Substituição (https://${tolower:$1}$2) diz ao mecanismo de pesquisa para reescrever o URL usando a tolower função na primeira referência anterior, (https:// ${tolower:$1}$2) deixando o restante do URL intocado (https://${tolower:$1} $2) .
Assim, um URL do formulário https://www.MyDomain.com/INTRO/index.Html é reescrito como https://www.mydomain.com/INTRO/index.Html .

Sobre diretivas RewriteCond

A diretiva RewriteCond define uma condição de regra. Quando um RewriteCond precede uma RewriteRule, a regra é usada somente se seu padrão corresponder ao título atual e as condições adicionais se aplicam. As condições de regravação assumem a seguinte forma:
           
<i>RewriteCond TestString CondPattern [Flags]</i> 
        

TestString é uma string que pode conter as seguintes construções:
Texto simples: Texto que é passado inalterado.
As referências retroativas fornecem acesso às partes agrupadas (entre parênteses) do Padrão ou CondPattern. Estes são os dois tipos de referências retroativas:
  • RewriteRule Backreferences Essas referências anteriores correspondem no padrão RewriteRule correspondente e assumem a forma $N (0 <= N <= 9). Por exemplo, RewriteRule ^https:// ([^/]*) (.*)$ https://${tolower: $1} $2 .
  • RewriteCond Backreferences Essas referências anteriores correspondem no último RewriteCond Cond CondPattern correspondente e assumem o formato %N (0<= N <= 9).
Variáveis: São variáveis do formulário % em que NAME_OF_VARIABLE pode ser uma string para o nome de uma variável definida. Consulte o sinalizador RewriteRule [E] para obter mais informações sobre como configurar variáveis.
Funções: Essas são funções do formulário $, onde NAME_OF_FUNCTION é o seguinte:
  • a opção torna todos os caracteres em minúsculas .
  • o toupper faz com que todos os caracteres fiquem em maiúsculas .
  • URL de escape codifica todos os caracteres na chave. Os caracteres 'a'.z', 'A'..Z', '0'...9', '*', '-', '.', '/', '@' e '_' são deixados inalterados, os espaços são convertidos em '+' e todos os outros caracteres são transformados em seu equivalente codificado em URL %xx.
  • unescape transforma '+' de volta ao espaço e todos os caracteres de codificação de URL %xx de volta em caracteres únicos.
CondPattern é uma Expressão regular estendida padrão com algumas adições. A string de padrão pode ser prefixada com um '!' (ponto de exclamação) para especificar um padrão não correspondente. Em vez de strings de expressão regular reais, você pode usar uma das seguintes variantes especiais:
Você também pode prefixar todos esses testes com um ponto de exclamação ('!') negar o seu significado.
Sequência CondPattern
Descrição
'<CondPattern'
Lexicamente menos.
Trata o CondPattern como uma string simples e o compara lexicamente ao TestString. True se TestString for lexicamente menor que CondPattern.
'>CondPattern'
Lexicamente maior.
Trata o CondPattern como uma string simples e o compara lexicamente ao TestString. True se TestString for lexicamente maior que CondPattern.
'=CondPattern'
Lexicamente igual.
Trata o CondPattern como uma string simples e o compara lexicamente ao TestString. True se TestString for lexicamente igual a CondPattern, ou seja, as duas strings serão exatamente iguais (caractere por caractere). Se CondPattern for apenas "" (duas aspas), isso compara TestString à string vazia.
Sinalizadores (opcional) Encaixe sinalizadores entre colchetes [] . Vários sinalizadores são separados por vírgulas.
Sinalizador
Descrição
'nocase|NC'
Nenhum caso.
Esse sinalizador faz com que o teste não diferencie maiúsculas de minúsculas, ou seja, não há diferença entre 'A-Z' e 'a-z' tanto no TestString expandido quanto no CondPattern.
'ornext|OR'
Ou a próxima condição.
Use esse sinalizador para combinar condições de regras com um OU local em vez do E implícito. Sem esse sinalizador, você teria que escrever a segunda/regra várias vezes.
Exemplo
Algumas páginas da Web atribuem uma variável CGI "sessionid" na primeira vez que um visitante chega a um site. Essa variável é usada para identificar o visitante e, à medida que o visitante navega pelo site, a variável é transmitida. Como o robô de pesquisa se parece com um visitante do site, é atribuído um número "sessionid". O robô de pesquisa mantém esse único valor "sessionid", mesmo se uma segunda página do site tentar atribuir um novo valor. Para garantir isso, você precisa de duas regras de regravação.
A primeira regra é usada para identificar e armazenar a variável sessionid:
RewriteCond  %{sessionid}  !.+ 
RewriteRule  ^.+sessionid= 
<b>([^&#]+)</b>.*$  -   
<i>[E=sessionid:$1]</i>

A RewriteRule usa um sinalizador E ([E=sessionid:$1]) para atribuir o valor atual do parâmetro CGI sessionid à variável sessionid . A $1 refere-se à primeira referência retroativa, que está contida entre o primeiro conjunto de parênteses no Padrão de RewriteRule ([^&#]+) .
A expressão regular ^&#]+ corresponde à parte de um URL entre a palavra sessionid e o caractere​* & ​ou​ # ​seguinte. Como essa RewriteRule é usada apenas para criar o valor inicial para a variável sessionid, ela não regravará. Observe que o campo Substituição da regra está definido para indicar - que nenhuma regravação é necessária.
O RewriteCond examina a variável sessionid ( %{sessionid} ). Se ele não tiver nem mesmo um caractere único (!.+), em seguida, a RewriteRule corresponde.
Usando essa regra, o URL é lido como https://www.domain.com/home/?sessionid=1234&function=start e atribui o valor 1234 à variável sessionid .
A segunda regra é usada para regravar todos os URLs que correspondem ao seguinte padrão RewriteRule:
RewriteRule   
<b>^(.+)</b>sessionid=[^&#]+ 
<i>(.*)$</i>  $1sessionid=%{sessionid}$2

O padrão RewriteRule contém duas referências anteriores: (.+) e (.*) . A primeira referência anterior corresponde a todos os caracteres anteriores sessionid . A segunda referência anterior corresponde a todos os caracteres após o término & ou # .
O padrão de Substituição regrava o URL usando a primeira referência retroativa, seguido pela string "sessionid=", seguida pelo valor da variável de ID da sessão definida pela primeira regra %{sessionid} , seguido pela segunda referência retroativa. ($1sessionid=%{sessionid} $2)
Observe que esta RewriteRule não contém uma RewriteCond. Dessa forma, isso gera uma regravação para todos os URLs que correspondem ao Padrão RewriteRule. Assim, se o valor da variável sessionid ( %{sessionid} ) for 1234 , um URL do formulário https://www.domain.com/products/?sessionid=5678&function=buy será reescrito como https://www.domain.com/products/?sessionid=1234&function=buy

Reconhecimento

O software do mecanismo de regravação foi desenvolvido originalmente pelo Apache Group para uso no projeto do servidor HTTP Apache (https://www.apache.org/).

Adicionar regras de URL de recuperação de lista de rastreamento

Você pode adicionar regras de URL de recuperação de lista de rastreamento para especificar como URLs encontrados no conteúdo da Web são reescritos. As Regras de regravação só são necessárias se os URLs contiverem dados dinâmicos, como uma ID de sessão, e se esses dados dinâmicos mudarem ao longo do tempo para permanecerem válidos.
Para adicionar lista de rastreamento, recupere regras de URL
  1. No menu do produto, clique em Settings > Rewrite Rules > Crawl List Retrieve URL Rules .
  2. No Crawl List Retrieve URL Rules campo, insira as regras desejadas.
    São permitidas linhas em branco e linhas de comentário que começam com um caractere '#' (hash).
  3. (Opcional) Na Crawl List Retrieve URL Rules página, no Test Crawl List Retrieve URL Rules campo, digite um URL de teste cujas regras de rastreamento você deseja testar e clique em Testar .
  4. Clique em Salvar alterações .
  5. (Opcional) Reconstrua o índice do site preparado se desejar visualizar os resultados.
  6. (Opcional) Na Crawl List Retrieve URL Rules página, execute um dos procedimentos a seguir:

Sobre regras de título de rastreamento

As Regras de Título de Rastreamento especificam como os títulos encontrados no conteúdo da Web são regravados antes de serem armazenados no índice de pesquisa.
Por exemplo, você pode usar uma regra de regravação para remover uma parte de um título, como o nome de uma organização. À medida que um site é rastreado, os títulos encontrados são armazenados em um buffer temporário. No entanto, antes que um título seja adicionado a esse buffer, as regras de título são aplicadas a ele. Por padrão, a pesquisa/comercialização do site não tem regras de título de rastreamento e não faz modificações de título.
Antes de os efeitos das regras serem visíveis para os clientes, recrie o índice do site.
É possível reverter rapidamente quaisquer alterações feitas nas Regras de título de rastreamento usando o recurso Histórico.
As regras podem consistir em dois elementos principais: RewriteRule e RewriteCond opcionais. Você pode especificar um número ilimitado de regras e condições. A ordem dessas regras é importante porque o conjunto de regras é repetido por regra. Quando uma regra corresponde, ela repete qualquer condição de regravação (opcional) correspondente. As regras de URL de rastreamento são especificadas da seguinte maneira:
RewriteCond  
<i>TestString CondPattern [Flags]</i> 
RewriteRule  
<i>Pattern Substitution [Flags]</i> 
 
RewriteCond  
<i>TestString CondPattern [Flags]</i> 
RewriteRule  
<i>Pattern Substitution [Flags]</i>

Quando um título é encontrado, o robô de pesquisa tenta corresponder o título ao Padrão de cada regra de rastreamento. Se o padrão corresponder, o mecanismo de regravação procurará as diretivas RewriteCond correspondentes. Se nenhuma condição estiver presente, o URL será substituído por um novo valor construído a partir da string Substituição e continuará com a próxima regra no conjunto de regras. Se houver condições, elas serão processadas na ordem em que estão listadas. O mecanismo de regravação tenta corresponder um padrão de condição (CondPattern) a uma string de teste (TestString). Se as duas corresponderem, a próxima condição será processada até que não haja mais condições disponíveis. Se todas as condições corresponderem, o URL será substituído pela Substituição especificada na regra. Se a condição não for atendida, o conjunto completo de condições e a regra correspondente falharão.
Digite as Regras de URL de rastreamento na caixa de texto e clique em Salvar alterações. São permitidas linhas em branco e linhas de comentário que começam com um caractere '#' (hash). Para testar as regras de pesquisa, insira um URL de teste na caixa de texto "Testar regras de regravação" e clique em Testar.

Diretiva RewriteRule

Cada diretiva RewriteRule define uma regra de regravação. As regras são aplicadas na ordem em que estão listadas. Uma regra de regravação assume o seguinte formato:
RewriteRule Pattern Substitution [Flags]

O padrão pode ser uma expressão regular POSIX, que é aplicada ao título atual. O "título atual" difere do título original, pois as regras anteriores já correspondem e o alteraram.
Consulte Expressões regulares .
Você pode usar o caractere "não" ('!') para prefixar o padrão. O caractere "não" permite negar um padrão, ou seja, ser verdadeiro somente se o título atual NÃO corresponder ao padrão. O caractere "não" pode ser usado quando é melhor corresponder a um padrão negativo ou como uma regra padrão final. Observação: Não é possível usar o caractere "não" e curingas agrupadas em um padrão. Além disso, não é possível usar um padrão negado quando a string de substituição contém $N.
Você pode usar parênteses para criar uma referência retroativa, que pode ser referenciada pela Substituição e CondPattern.
Substituição O título é substituído pela string de substituição. A string pode conter o seguinte:
Texto sem formatação - texto que é transmitido sem alterações.
As referências retroativas fornecem acesso às partes agrupadas (entre parênteses) do Padrão ou CondPattern. Estes são dois tipos de referências retroativas:
  • Referências retroativas de RewriteRule
    Elas correspondem às referências anteriores no Padrão RewriteRule correspondente e assumem a forma $N (0 <= N <= 9). Por exemplo, RewriteRule ^My[[:blank:]] (.*)$ ${toupper: $1}
  • Referências retroativas de RewriteCond
    Essas referências retroativas correspondem no último RewriteCond Cond CondPattern correspondente e assumem o formato %N (0 <= N <= 9).
Variáveis São variáveis do formulário % em que NAME_OF_VARIABLE pode ser uma string para o nome de uma variável definida. Consulte o sinalizador [E] para obter mais informações sobre como configurar variáveis de ambiente.
Funções São funções do formulário $ onde NAME_OF_FUNCTION é:
  • a opção torna todos os caracteres em minúsculas .
  • o toupper faz com que todos os caracteres fiquem em maiúsculas .
Existe uma string de substituição especial: "-" significa "substituição de NO". A string '-' geralmente é útil com o sinalizador C (cadeia), permitindo que você corresponda um título a vários padrões antes que ocorra uma substituição.
Sinalizadores (opcional)
Os sinalizadores estão entre parênteses [] e vários sinalizadores são separados por vírgulas:
Sinalizador
Descrição
'last|L'
Última regra.
Interrompe o processo de regravação e não aplica regras adicionais de regravação. Use esse sinalizador para impedir qualquer processamento adicional no título atual.
'next|N'
Próxima rodada.
Executa novamente o processo de regravação (iniciando novamente com a primeira regra de regravação) usando o título da última regra de regravação, não o título original. Tenha cuidado para não criar um ciclo sem saída.
'chain|C'
Encadeado com a próxima regra.
Encadeia a regra atual para a regra seguinte (que também pode ser encadeada à regra a seguir e assim por diante). Se uma regra corresponde, o processo de substituição continua como de costume. Se a regra não corresponder, todas as regras encadeadas subsequentes serão ignoradas.
'nocase|NC'
Nenhum caso.
Faz com que o Padrão não diferencie maiúsculas de minúsculas (ou seja, não há diferença entre 'A-Z' e 'a-z') quando o padrão é comparado ao título atual.
'skip|S=num'
Ignorar a regra ou as regras seguintes.
Se a regra atual corresponder, esse sinalizador forçará o mecanismo de regravação a ignorar as regras de próximo número no conjunto de regras. Use-o para criar construções pseudo if-then-else. A última regra da cláusula then torna-se um skip=N, onde N é o número de regras na cláusula else. (Observação: Não é o mesmo que o sinalizador 'chain|C'!)
'env|E=VAR:VAL'
Defina a variável de ambiente.
Cria uma variável ambiental "VAR" definida como valor VAL, onde VAL pode conter referências retroativas de expressões regulares, $N e %N, que é expandida. Você pode usar esse sinalizador mais de uma vez para definir várias variáveis. As variáveis podem ser referenciadas posteriormente em um padrão RewriteCond a seguir via %{VAR}. Use esse sinalizador para retirar e lembrar informações dos títulos.

Diretiva RewriteCond (Opcional)

A diretiva RewriteCond define uma condição de regra. Quando um RewriteCond precede uma RewriteRule, a regra é usada somente se seu padrão corresponder ao título atual e as condições adicionais se aplicam.
As diretivas de condição de regravação assumem a seguinte forma:
RewriteCond TestString CondPattern [Flags] 

TestString é uma string que pode conter as seguintes construções:
Texto sem formatação - texto que é transmitido sem alterações.
As referências retroativas fornecem acesso às partes agrupadas (entre parênteses) do Padrão ou CondPattern. Há dois tipos de referências retroativas:
  • Referências retroativas de RewriteRuleCorrespondem às referências retroativas no Padrão RewriteRule correspondente e assumem a forma $N (0 <= N <= 9). Por exemplo, RewriteRule ^My[[:blank:]] (.*)$ ${toupper: $1}
  • Referências retroativas de RewriteCondCorrespondem às referências retroativas na última correspondência de RewriteCond CondPattern e assumem a forma %N (0 <= N <= 9).
Variáveis São variáveis do formulário % em que NAME_OF_VARIABLE pode ser uma string para o nome de uma variável definida. Consulte o sinalizador [E] para obter mais informações sobre como configurar variáveis de ambiente.
Funções São funções do formato $, onde NAME_OF_FUNCTION é:
  • a opção torna todos os caracteres em minúsculas .
  • o toupper faz com que todos os caracteres fiquem em maiúsculas .
  • URL de escape codifica todos os caracteres na chave.
  • Os caracteres 'a'.z', 'A'..Z', '0'...9', '*', '-', '.', '/', '@' e '_' são deixados inalterados, os espaços são convertidos em '+' e todos os outros caracteres são transformados em seu equivalente codificado em URL %xx.
  • unescape transforma '+' de volta ao espaço e todos os caracteres codificados por URL %xx de volta em caracteres únicos.
CondPattern é uma Expressão regular estendida padrão com algumas adições. A string de padrão pode ser prefixada com um '!' (ponto de exclamação) para especificar um padrão não correspondente. Em vez de strings de expressões regulares reais, você pode usar uma das seguintes variantes especiais.
Você pode prefixar todos esses testes com um ponto de exclamação ('!') negar o seu significado.
Sequência CondPattern
Descrição
'<CondPattern'
É lexicamente menor.
Trata o CondPattern como uma string simples e o compara lexicamente ao TestString . True se TestString for lexicamente menor que CondPattern .
'>CondPattern'
É lexicamente maior.
Trata o CondPattern como uma string simples e o compara lexicamente ao TestString . True se TestString for lexicamente maior que CondPattern .
'=CondPattern'
É lexicamente igual.
Trata o CondPattern como uma string simples e o compara lexicamente ao TestString . True se TestString for lexicamente igual a CondPattern , ou seja, as duas strings são exatamente iguais (caractere por caractere). Se CondPattern for apenas "" (duas aspas), isso compara TestString à string vazia.
Sinalizadores (opcional)
Os sinalizadores estão entre parênteses [] e vários sinalizadores são separados por vírgulas:
Sinalizador
Descrição
'nocase|NC'
Nenhum caso.
Torna o teste não sensível. Ou seja, não há diferença entre 'A-Z' e 'a-z' tanto no TestString expandido quanto no CondPattern.
'ornext|OR'
Ou a próxima condição.
Use esse sinalizador para combinar condições de regras com um OU local em vez do E implícito. Sem esse sinalizador, você teria que escrever a segunda/regra várias vezes.
Exemplo
Suponha que você tenha um site corporativo com um formato de título padrão: "Minha empresa" seguido por um hífen e, em seguida, uma descrição específica da página ("Minha empresa - Bem-vindo" ou "Minha empresa - Notícias", por exemplo). Você deseja retirar "Minha empresa -" do título e converter o título inteiro em letras maiúsculas quando indexar o site.
A regra de regravação a seguir usa a função toupper para regravar somente a parte descritiva de um título para maiúsculas:
RewriteRule  ^My[[:blank:]]Company[[:blank:]]-[[:blank:]] 
<b>(.*)</b>$  ${toupper: 
<b>$1</b>}

O Padrão da regra (^My[[:blank:]]Company[[:blank:]]-[[:blank:]] (.*)) contém uma referência retroativa (.*) que corresponde ao conteúdo do título que segue "Minha empresa-". Lembre-se de que ao redor de uma parte de um padrão com parênteses ( ) cria uma referência retroativa que pode ser referenciada pela Substituição. Neste exemplo, a Substituição (${toupper: $1 }) regrava essa referência retroativa ( $1 ) usando a função de toupper.
Assim, um título do formulário "Minha empresa - Bem-vindo" é reescrito como "BEM-VINDO".
Reconhecimento
O software do mecanismo de regravação foi desenvolvido originalmente pelo Apache Group para uso no projeto do servidor HTTP Apache (https://www.apache.org/).

Adicionar regras de título de rastreamento

Você pode adicionar regras de título de rastreamento para especificar como os títulos encontrados no conteúdo da Web são regravados antes de serem armazenados no índice de pesquisa.
Para adicionar regras de título de rastreamento
  1. No menu do produto, clique em Settings > Rewrite Rules > Crawl Title Rules .
  2. No Crawl Title Rules campo, insira as regras desejadas.
    São permitidas linhas em branco e linhas de comentário que começam com um caractere '#' (hash).
  3. (Opcional) Na Crawl Title Rules página, no Test Crawl Title Rules campo, insira um URL de teste cujas regras de pesquisa você deseja testar e clique em Testar .
  4. Clique em Salvar alterações .
  5. (Opcional) Reconstrua o índice do site preparado se desejar visualizar os resultados.
  6. (Opcional) Na Crawl Title Rules página, execute um dos procedimentos a seguir:

Sobre Regras de URL de pesquisa

As Regras de URL de pesquisa especificam como os URLs nos resultados de pesquisa do site devem ser exibidos. As regras operam em URLs completos. Qualquer parte do URL pode ser manipulada, incluindo argumentos de consulta nos quais as informações da ID da sessão são mantidas com frequência.
Normalmente, as regras de URL de pesquisa são usadas para inserir uma ID de sessão em um URL. No entanto, também é possível usar as regras de URL de pesquisa para alterar o nome do domínio exibido com os resultados. Por padrão, nenhuma regra é especificada e nenhuma modificação de URL é executada.
As regras de URL de pesquisa podem consistir em dois elementos principais: RewriteRule e RewriteCond opcionais. Quando um URL é incluído como parte de um resultado de pesquisa, as regras são usadas para manipulá-lo. Você pode especificar um número ilimitado de regras e condições de URL de pesquisa. A ordem dessas regras é importante porque o conjunto de regras é repetido por regra. Quando uma regra corresponde, o software executa o loop por qualquer condição de regravação (opcional) correspondente. As regras de URL de rastreamento são especificadas da seguinte maneira:
RewriteCond  
<i>TestString CondPattern [Flags]</i> 
RewriteRule  
<i>Pattern Substitution [Flags]</i> 
 
RewriteCond  
<i>TestString CondPattern [Flags]</i> 
RewriteRule  
<i>Pattern Substitution [Flags]</i>

Ao processar um URL, a pesquisa/comercialização do site tenta corresponder ao Padrão de cada regra de pesquisa. Se a correspondência falhar, o mecanismo de regravação interrompe imediatamente o processamento da regra e continua com a regra seguinte no conjunto. Se o padrão corresponder, o mecanismo de regravação procurará as instruções RewriteCond correspondentes. Se não houver condições, o URL será substituído por um novo valor. Esse valor é construído a partir da string Substituição e continua com a próxima regra no conjunto de regras. Se houver condições, a ordem listada será como elas serão processadas. O mecanismo de regravação tenta corresponder um padrão de condição (CondPattern) a uma string de teste (TestString). Se as duas corresponderem, a próxima condição será processada até que não haja mais condições disponíveis. Se todas as condições corresponderem, o URL será substituído pela Substituição especificada na regra. Se a condição não for atendida, o conjunto completo de condições e a regra correspondente falharão.

Sobre a diretiva RewriteRule

Uma regra de regravação assume o seguinte formato:
RewriteRule  
<i>Pattern Substitution [Flags]</i>

O padrão pode ser uma expressão regular POSIX, que é aplicada ao URL atual. O "URL atual" pode ser diferente do URL original, pois as regras anteriores podem já ter correspondência e alterado.
Consulte Expressões regulares .
Você pode usar o caractere "não" ('!') para prefixar o padrão. O caractere "não" permite negar um padrão. Em outras palavras, é verdadeiro somente se o URL atual NÃO corresponder ao padrão. Você pode usar o caractere "não" quando for melhor corresponder a um padrão negativo ou como uma regra padrão final. Observe que não é possível usar tanto o caractere "não" quanto os curingas agrupados em um padrão. Além disso, não é possível usar um padrão negado quando a string de substituição contém $N.
Você pode usar parênteses para criar uma referência retroativa, que pode ser referenciada pela Substituição e CondPattern.
Substituição O URL é completamente substituído pela string de substituição, que pode conter o seguinte:
Texto sem formatação - texto que é transmitido sem alterações.
Backreferences Fornece acesso às partes agrupadas (entre parênteses) do Padrão ou CondPattern. Há dois tipos de referências retroativas:
Referências retroativas de RewriteRuleCorrespondem às referências retroativas no Padrão RewriteRule correspondente e assumem a forma $N (0 <= N <= 9). Por exemplo, RewriteRule ^My[[:blank:]] (.*)$ ${toupper: $1}
RewriteCond Backreferences - Correspondem às backreferences no último RewriteCond Cond CondPattern correspondente e assuma a forma %N (0 <= N <= 9).
Funções: Essas são funções do formulário $, onde NAME_OF_FUNCTION é:
  • a opção torna todos os caracteres em minúsculas .
  • o toupper faz com que todos os caracteres fiquem em maiúsculas .
  • URL de escape codifica todos os caracteres na chave .
  • Os caracteres 'a'.z', 'A'..Z', '0'...9', '*', '-', '.', '/', '@' e '_' são deixados inalterados; espaços são convertidos em '+'; todos os outros caracteres são transformados em seu equivalente codificado por URL %xx.
  • unescape transforma '+' de volta ao espaço e todos os caracteres codificados por URL %xx de volta em caracteres únicos.
Existe uma string de substituição especial: "-" significa "substituição de NO". A string '-' geralmente é útil em conjunto com o sinalizador C (cadeia). Ele permite que você corresponda um URL a vários padrões antes que uma substituição ocorra.
Sinalizadores (opcional)
Os sinalizadores estão entre parênteses [] e vários sinalizadores são separados por vírgulas:
Sinalizador
Descrição
'last|L'
Última regra.
Pare o processo de regravação e não aplique regras adicionais de regravação. Use esse sinalizador para impedir qualquer processamento adicional no URL atual.
'next|N'
Próxima rodada.
Execute novamente o processo de regravação (começando novamente com a primeira regra de regravação) usando o URL da última regra de regravação (não o URL original). Tenha cuidado para não criar um ciclo sem saída!
'chain|C'
Encadeado com a próxima regra.
Esse sinalizador encadea a regra atual à regra seguinte, que também pode ser encadeada à regra a seguir e assim por diante. Se uma regra corresponde, o processo de substituição continua como de costume. Se a regra não corresponder, todas as regras encadeadas subsequentes serão ignoradas.
'nocase|NC'
Nenhum caso.
Este sinalizador faz com que o Padrão não diferencie maiúsculas de minúsculas. Em outras palavras, não há diferença entre 'A-Z' e 'a-z' quando o padrão é comparado ao URL atual.
'skip|S=num'
Ignorar a regra ou as regras seguintes.
Se a regra atual corresponder, esse sinalizador forçará o mecanismo de regravação a ignorar as regras de próximo número no conjunto de regras. Use-o para criar construções pseudo if-then-else. A última regra da cláusula then torna-se um skip=N, onde N é o número de regras na cláusula else. (Observação: Não é o mesmo que o sinalizador 'chain|C'!)
'env|E=VAR:VAL'
Defina a variável ambiental.
Esse sinalizador cria uma variável ambiental "VAR" definida para o valor VAL. O VAL pode conter referências retroativas de expressões regulares, $N e %N, que são expandidas. Você pode usar esse sinalizador mais de uma vez para definir várias variáveis. As variáveis podem ser removidas posteriormente de referência em um padrão RewriteCond a seguir via %{VAR}. Use esse sinalizador para retirar e lembrar informações de URLs.
Observe que as Regras de regravação de armazenamento e as Regras de regravação de recuperação compartilham valores variáveis. Por isso, você pode definir uma variável para um valor de sessionid que diferencia tempo quando um URL incorporado é encontrado e armazenado. Quando o próximo URL é recuperado da lista de armazenamento temporário, o valor sessionid mais recente pode ser adicionado a ele antes que essa página seja recuperada.
Exemplo
Suponha que você tenha um servidor que diferencia maiúsculas de minúsculas. Ele lida com as strings "www.mydomain.com" e "www.MyDomain.com" de forma diferente. Para que o servidor funcione corretamente, é necessário garantir que o domínio seja sempre "www.mydomain.com", mesmo que alguns documentos contenham links que fazem referência a "www.MyDomain.com". Para fazer isso, você pode usar a seguinte regra:
RewriteRule  ^https:// 
<b>([^/]*)</b> 
<i>(.*)</i>$  https://${tolower:$1}$2 

Essa regra de regravação usa a função "tolower" para regravar a parte de domínio de um URL, a fim de garantir que ela esteja sempre em minúsculas:
  1. O Padrão (^https://([^/]*)(.*)$) contém uma referência retroativa ([^/]*) que corresponde a todos os caracteres entre "https://" e o primeiro "/" no URL. O padrão também contém uma segunda referência anterior (.*) que corresponde a todos os caracteres restantes no URL.
  2. A Substituição (https://${tolower:$1}$2) diz ao mecanismo de pesquisa para regravar o URL usando a função de alternância na primeira referência retroativa, (https://**${tolower:$1**}$2) deixando o restante do URL intocado (https://${tolower:$1}*$2*) .
Portanto, um URL do formulário https://www.MyDomain.com/INTRO/index.Html é reescrito como https://www.mydomain.com/INTRO/index.Html
Diretiva RewriteCond (opcional)
A diretiva RewriteCond define uma condição de regra. Quando um RewriteCond precede uma RewriteRule, a regra é usada somente se seu padrão corresponder ao título atual e as condições adicionais se aplicam.
As diretivas de condição de regravação assumem a seguinte forma:
RewriteCond  
<i>TestString CondPattern [Flags]</i>

TestString é uma string que pode conter as seguintes construções:
Texto simples: Texto que é passado inalterado.
As referências retroativas fornecem acesso às partes agrupadas (entre parênteses) do Padrão ou CondPattern. Há dois tipos de referências retroativas:
  • RewriteRule Backreferences Essas referências retroativas correspondem no Padrão RewriteRule correspondente e assumem a forma $N (0 <= N <= 9). Por exemplo, RewriteRule ^My[[:blank:]] (.*)$ ${toupper: $1}
  • RewriteCond Backreferences Essas referências anteriores correspondem no último RewriteCond Cond CondPattern correspondente e assumem o formato %N (0 <= N <= 9).
Variáveis São variáveis do formulário % em que NAME_OF_VARIABLE pode ser uma string para o nome de uma variável definida. Consulte o sinalizador RewriteRule [E] para obter mais informações sobre como configurar variáveis.
As regras de regravação geralmente usam variáveis. Todos os parâmetros CGI do URL atual são automaticamente transformados em variáveis. Por exemplo, o URL de pesquisa "https://search.atomz.com/search/?sp_a=sp00000000&sp_q="Product"&session=1234&id=5678" fornecerá automaticamente quatro variáveis, que podem ser referenciadas nas regras de regravação. Neste exemplo, uma variável é chamada "session" e seu valor é "1234", enquanto outra variável é chamada "id" e seu valor é "5678". (As outras duas variáveis são sp_a e sp_q .) Você deve passar todas as variáveis necessárias como campos ocultos do formulário de pesquisa em sua página da Web. Neste exemplo, você deve passar os valores "session" e "id", que identificam o usuário do site que está realizando a pesquisa. Para passar um campo oculto no formulário de pesquisa, use uma tag como <input type=hidden name="session" value="1234"> .
Funções São funções do formato $, onde NAME_OF_FUNCTION é:
  • a opção torna todos os caracteres em minúsculas .
  • o toupper faz com que todos os caracteres fiquem em maiúsculas .
  • URL de escape codifica todos os caracteres na chave . Os caracteres 'a'.z', 'A'..Z', '0'...9', '*', '-', '.', '/', '@' e '_' são deixados inalterados, os espaços são convertidos em '+' e todos os outros caracteres são transformados em seu equivalente codificado em URL %xx.
  • unescape transforma '+' de volta ao espaço e todos os caracteres de codificação de URL %xx de volta em caracteres únicos.
CondPattern é uma Expressão regular estendida padrão com algumas adições. A string de padrão pode ser prefixada com um '!' (ponto de exclamação) para especificar um padrão não correspondente. Em vez de strings de expressões regulares reais, você pode usar uma das seguintes variantes especiais.
Você pode prefixar todos esses testes usando um ponto de exclamação ('!') negar o seu significado.
Sequência CondPattern
Descrição
'<CondPattern'
É lexicamente menor.
Trata o CondPattern como uma string simples e o compara lexicamente ao TestString . True se TestString for lexicamente menor que CondPattern .
'>CondPattern'
É lexicamente maior.
Trata o CondPattern como uma string simples e o compara lexicamente ao TestString . True se TestString for lexicamente maior que CondPattern .
'=CondPattern'
É lexicamente igual.
Trata o CondPattern como uma string simples e o compara lexicamente ao TestString . True se TestString for lexicamente igual a CondPattern . Ou seja, as duas strings são exatamente iguais (caractere por caractere). Se CondPattern for apenas "" (duas aspas), isso compara TestString à string vazia.
Sinalizadores (opcional)
Os sinalizadores estão entre parênteses [] e vários sinalizadores são separados por vírgulas:
'nocase|NC' (nenhum caso): Isso faz com que o teste não diferencie maiúsculas de minúsculas. Em outras palavras, não há diferença entre 'A-Z' e 'a-z' tanto no TestString expandido quanto no CondPattern .
'ornext|OR' (ou condição seguinte): Use-o para combinar condições de regras com um OU local em vez do E implícito. Sem esse sinalizador, você teria que escrever a segunda/regra várias vezes.
Exemplo
Algumas páginas da Web atribuem uma variável CGI "sessionid" na primeira vez que um cliente chega a um site. Essa variável é usada para identificar o cliente e, à medida que o cliente navega pelo site, a variável é transmitida. Como o robô de pesquisa se parece com um cliente do site, ele recebe um número "sessionid". O robô de pesquisa mantém esse único valor "sessionid", mesmo se uma segunda página do site tentar atribuir um novo valor. Para garantir isso, você precisa da seguinte regra de regravação:
RewriteCond  %{sessionid}  .+ 
RewriteRule  ^ 
<b>(.+)</b>sessionid=[^&#]+ 
<i>(.*)</i>$   
<b>$1</b>sessionid=%{sessionid} 
<i>$2</i>

O padrão RewriteRule contém duas referências anteriores: (.+) e (.*). A primeira referência posterior corresponde a todos os caracteres antes de "sessionid=". A segunda referência retroativa corresponde a todos os caracteres após o término de '&' ou '#' do sessionid.
O padrão de Substituição regrava o URL usando a primeira referência retroativa, seguida pela string "sessionid=", seguida pelo valor da variável da ID da sessão, que foi transmitida como um parâmetro CGI no URL, seguido pela segunda referência retroativa. ($1sessionid=%{sessionid}$2) .
O RewriteCond examina a variável sessionid (%{sessionid}) . Se contiver pelo menos um caractere (.+), em seguida, a RewriteRule corresponde.
Assim, se a consulta de pesquisa for "https://search.atomz.com/search/?sp_a=sp99999999&sp_q=word&sessionid=5678" , todos os URLs de resultado de pesquisa serão regravados para que o valor "sessionid" seja "5678" em vez do valor "sessionid" encontrado pelo robô de pesquisa ao rastrear seu site e salvar os links.
Reconhecimento
O software do mecanismo de regravação foi desenvolvido originalmente pelo Apache Group para uso no projeto do servidor HTTP Apache (https://www.apache.org/).

Adicionar regras de URL de pesquisa

Você pode adicionar regras de URL de pesquisa para especificar como os URLs nos resultados de pesquisa do site são exibidos. As regras operam em URLs completos. É possível manipular qualquer parte do URL, incluindo argumentos de consulta nos quais as informações da ID da sessão são mantidas com frequência.
Para adicionar regras de URL de pesquisa
  1. No menu do produto, clique em Settings > Rewrite Rules > Search URL Rules .
  2. No Search URL Rules campo, insira as regras desejadas.
    São permitidas linhas em branco e linhas de comentário que começam com um caractere '#' (hash).
  3. (Opcional) Na Search URL Rules página, no Test Search URL Rules campo, digite um URL de teste cujas regras de rastreamento você deseja testar e clique em Testar .
  4. Clique em Salvar alterações .
  5. (Opcional) Reconstrua o índice do site preparado se desejar visualizar os resultados.
  6. (Opcional) Na Search URL Rules página, execute um dos procedimentos a seguir:

Sobre as regras de título de pesquisa

As Regras de título de pesquisa especificam como os títulos em seus resultados de pesquisa do site são exibidos. Qualquer parte do título pode ser manipulada.
Uma regra de regravação pode ser usada para remover uma parte de um título, como um nome de organização, por exemplo. Por padrão, a pesquisa/comercialização do site não tem regras de título e não faz modificações de título.
As regras de título podem consistir em dois elementos principais: RewriteRule e RewriteCond opcionais. Pode ser especificado um número ilimitado de regras e condições. A ordem dessas regras é importante, pois o conjunto de regras é repetido por regra. Quando uma regra corresponde, o software executa o loop por qualquer condição de regravação (opcional) correspondente. As Regras de Título de Pesquisa são especificadas da seguinte maneira:
RewriteCond  
<i>TestString CondPattern [Flags]</i> 
RewriteRule  
<i>Pattern Substitution [Flags]</i> 
 
RewriteCond  
<i>TestString CondPattern [Flags]</i> 
RewriteRule  
<i>Pattern Substitution [Flags]</i>

Quando um título é encontrado, a pesquisa/comercialização do site tenta corresponder ao Padrão de cada regra de rastreamento. Se o padrão corresponder, o mecanismo de regravação procurará as diretivas RewriteCond correspondentes. Se nenhuma condição estiver presente, o título será substituído por um novo valor construído a partir da string Substituição e continuará com a próxima regra no conjunto de regras. Se houver condições, elas serão processadas na ordem em que estão listadas. O mecanismo de regravação tenta corresponder um padrão de condição (CondPattern) a uma string de teste (TestString). Se as duas corresponderem, a próxima condição será processada até que não haja mais condições disponíveis. Se todas as condições corresponderem, o URL será substituído pela Substituição especificada na regra. Se a condição não for atendida, o conjunto completo de condições e a regra correspondente falharão.

Diretiva RewriteRule

Cada diretiva RewriteRule define uma regra de regravação. As regras são aplicadas na ordem em que estão listadas. Uma regra de regravação assume o seguinte formato:
RewriteRule Pattern Substitution [Flags]

Padrão Uma expressão regular POSIX, que é aplicada ao título atual. O "título atual" pode ser diferente do título original, pois as regras anteriores podem já ter correspondido e alterado.
Consulte Expressões regulares .
Você pode usar o caractere "não" ('!') para prefixar o padrão. O caractere "não" permite negar um padrão. Ou seja, ser verdadeiro somente se o título atual NÃO corresponder ao padrão. O caractere "não" pode ser usado quando é melhor corresponder a um padrão negativo ou como uma regra padrão final. Observação: Não é possível usar o caractere "não" e curingas agrupadas em um padrão. Além disso, não é possível usar um padrão negado quando a string de substituição contém $N.
Você pode usar parênteses para criar uma referência retroativa, que pode ser referenciada pela Substituição e CondPattern.
Substituição O título é completamente substituído pela string de substituição, que pode conter o seguinte:
Texto sem formatação - texto que é transmitido sem alterações.
Referências retroativas Fornecem acesso às partes agrupadas (entre parênteses) do Padrão ou CondPattern. Estes são dois tipos de referências retroativas:
  • RewriteRule Backreferences Essas referências anteriores correspondem no padrão RewriteRule correspondente e assumem a forma $N (0 <= N <= 9). Por exemplo, RewriteRule ^My[[:blank:]] (.*)$ ${toupper: $1}
  • RewriteCond Backreferences Essas referências retroativas correspondem na última RewriteCond Cond CondPattern correspondente e têm o formato %N (0 <= N <= 9).
Variáveis São variáveis do formulário % em que NAME_OF_VARIABLE pode ser uma string para o nome de uma variável definida. Consulte o sinalizador # para obter mais informações sobre como configurar variáveis de ambiente. As variáveis também podem ser definidas no formulário de pesquisa que gerou os resultados da pesquisa.
Funções São funções do formulário $ onde NAME_OF_FUNCTION é:
  • a opção torna todos os caracteres em minúsculas .
  • o toupper faz com que todos os caracteres fiquem em maiúsculas .
Existe uma string de substituição especial: "-" significa "substituição de NO". A string '-' geralmente é útil em conjunto com o sinalizador C (cadeia), permitindo que você corresponda um título a vários padrões antes que ocorra uma substituição.
Sinalizadores (opcional)
Os sinalizadores estão entre colchetes [] e vários sinalizadores são separados por vírgulas:
Sinalizador
Descrição
'last|L'
Última regra.
Pare o processo de regravação e não aplique regras adicionais de regravação. Use esse sinalizador para impedir qualquer processamento adicional no título atual.
'next|N'
Próxima rodada.
Execute novamente o processo de regravação (começando pela primeira regra de regravação) usando o título da última regra de regravação (não o título original!). Tenha cuidado para não criar um ciclo sem saída.
'chain|C'
Encadeado com a próxima regra.
Esse sinalizador encadea a regra atual à regra seguinte (que também pode ser encadeada à regra a seguir e assim por diante). Se uma regra corresponde, o processo de substituição continua como de costume. Se a regra não corresponder, todas as regras encadeadas subsequentes serão ignoradas.
'nocase|NC'
Nenhum caso.
Este sinalizador faz com que o Padrão não diferencie maiúsculas de minúsculas. Ou seja, não há diferença entre 'A-Z' e 'a-z' quando o padrão é comparado ao título atual.
'skip|S=num'
Ignorar a regra ou as regras seguintes.
Se a regra atual corresponder, esse sinalizador forçará o mecanismo de regravação a ignorar as regras de próximo número no conjunto de regras. Use-o para criar construções pseudo if-then-else. A última regra da cláusula then torna-se um skip=N, onde N é o número de regras na cláusula else. (Não é o mesmo que o sinalizador 'chain|C'!)
'env|E=VAR:VAL'
Defina a variável de ambiente.
Este sinalizador cria uma variável ambiental "VAR" definida como valor VAL, onde VAL pode conter referências retroativas de expressões regulares, $N e %N, que serão expandidas. Você pode usar esse sinalizador mais de uma vez para definir várias variáveis. As variáveis podem ser referenciadas posteriormente em um padrão RewriteCond a seguir via %{VAR}. Use esse sinalizador para retirar e lembrar informações dos títulos.

Diretiva RewriteCond (Opcional)

A diretiva RewriteCond define uma condição de regra. Quando um RewriteCond precede uma RewriteRule, a regra é usada somente se seu padrão corresponder ao título atual e as condições adicionais se aplicam.
As diretivas de condição de regravação assumem a seguinte forma:
RewriteCond TestString CondPattern [Flags]

TestString é uma string que pode conter as seguintes construções:
Texto sem formatação - texto que é transmitido sem alterações.
As referências retroativas fornecem acesso às partes agrupadas (entre parênteses) do Padrão ou CondPattern. Há dois tipos de referências retroativas:
  • RewriteRule Backreferences Essas referências anteriores correspondem no padrão RewriteRule correspondente e assumem a forma $N (0 <= N <= 9). Por exemplo, RewriteRule ^My[[:blank:]] (.*)$ ${toupper: $1}
  • RewriteCond Backreferences Essas referências anteriores correspondem no último RewriteCond Cond CondPattern correspondente e assumem o formato %N (0 <= N <= 9).
Variáveis São variáveis do formulário % em que NAME_OF_VARIABLE pode ser uma string para o nome de uma variável definida. Consulte o sinalizador [E] para obter mais informações sobre como configurar variáveis de ambiente. As variáveis também podem ser definidas no formulário de pesquisa que gerou os resultados da pesquisa.
Funções São funções do formato $, onde NAME_OF_FUNCTION é:
  • a opção torna todos os caracteres em minúsculas .
  • o toupper faz com que todos os caracteres fiquem em maiúsculas .
  • URL de escape codifica todos os caracteres na chave .
  • Os caracteres 'a'.z', 'A'..Z', '0'...9', '*', '-', '.', '/', '@' e '_' são deixados inalterados, os espaços são convertidos em '+' e todos os outros caracteres são transformados em seu equivalente codificado em URL %xx.
  • unescape transforma '+' de volta ao espaço e todos os caracteres codificados por URL %xx de volta em caracteres únicos.
Existe uma string de substituição especial: "-" significa "substituição de NO". A sequência de caracteres '-' geralmente é útil em conjunto com o sinalizador C (cadeia), permitindo que você corresponda um URL a vários padrões antes que ocorra uma substituição.
CondPattern Uma expressão regular estendida padrão com algumas adições. A string de padrão pode ser prefixada com um '!' (ponto de exclamação) para especificar um padrão não correspondente. Em vez de strings de expressões regulares reais, você pode usar uma das seguintes variantes especiais.
Todos esses testes também podem ser prefixados por um ponto de exclamação ('!') negar o seu significado.
Sequência CondPattern
Descrição
'<CondPattern'
É lexicamente menor.
Trata o CondPattern como uma string simples e o compara lexicamente ao TestString . True se TestString for lexicamente menor que CondPattern .
'>CondPattern'
É lexicamente maior.
Trata o CondPattern como uma string simples e o compara lexicamente ao TestString . True se TestString for lexicamente maior que CondPattern .
'=CondPattern'
É lexicamente igual.
Trata o CondPattern como uma string simples e o compara lexicamente ao TestString . True se TestString for lexicamente igual a CondPattern . Ou seja, as duas strings são exatamente iguais (caractere por caractere). Se CondPattern for apenas "" (duas aspas), isso compara TestString à string vazia.
Sinalizadores (opcional)
Os sinalizadores estão entre colchetes [] e vários sinalizadores são separados por vírgulas:
Sinalizador
Descrição
'nocase|NC' (nenhum caso)
Torna o teste não sensível. Ou seja, não há diferença entre 'A-Z' e 'a-z' tanto no TestString expandido quanto no CondPattern .
'ornext|OR' (ou próxima condição)
Use-o para combinar condições de regras com um OU local em vez do E implícito. Sem esse sinalizador, você teria que escrever a segunda/regra várias vezes.

Exemplo

Suponha que você tenha um site corporativo com um formato de título padrão: "Minha empresa" seguido por um hífen e, em seguida, uma descrição específica da página ("Minha empresa - Bem-vindo" ou "Minha empresa - Notícias", por exemplo). Você deseja retirar "Minha empresa -" do título e converter o título inteiro em letras maiúsculas quando indexar o site.
A regra de regravação a seguir usa a função toupper para regravar somente a parte descritiva de um título para maiúsculas:
RewriteRule  ^My[[:blank:]]Company[[:blank:]]-[[:blank:]] 
<b>(.*)</b>$  ${toupper: 
<b>$1</b>} 

O Padrão da regra (^My[[:blank:]]Company[[:blank:]]-[[:blank:]] (.*)) contém uma referência retroativa (.*) que corresponde ao conteúdo do título que segue "Minha empresa-". Lembre-se de que ao redor de uma parte de um padrão com parênteses ( ) cria uma referência retroativa que pode ser referenciada pela Substituição. Neste exemplo, a Substituição (${toupper: $1 }) regrava essa referência retroativa ( $1 ) usando a função de toupper.
Assim, um título do formulário "Minha empresa - Bem-vindo" é reescrito como "BEM-VINDO".
Reconhecimento
O software do mecanismo de regravação foi desenvolvido originalmente pelo Apache Group para uso no projeto do servidor HTTP Apache (https://www.apache.org/).

Adicionar regras de título de pesquisa

Você pode adicionar regras de título de pesquisa para especificar como os títulos do site e os resultados de pesquisa são exibidos. É possível manipular qualquer parte do título.
Para adicionar regras de título de pesquisa
  1. No menu do produto, clique em Settings > Rewrite Rules > Search Title Rules .
  2. No Search Title Rules campo, insira as regras desejadas.
    São permitidas linhas em branco e linhas de comentário que começam com um caractere '#' (hash).
  3. (Opcional) Na Search Title Rules página, no Test Search Title Rules campo, insira o título do teste e clique em Testar .
  4. Clique em Salvar alterações .
  5. (Opcional) Reconstrua o índice do site preparado se desejar visualizar os resultados.
  6. (Opcional) Na Search Title Rules página, execute um dos procedimentos a seguir: