Configurar regras de mapeamento de nomes de host
Objetivos de aprendizagem
- Explicar o objetivo de mapear regras no arquivo de alias.
- Apresentar duas razões para adicionar regras de mapeamento a um arquivo de alias de host.
- Explicar como o B2C Commerce lida com mapeamentos duplicados de URL.
- Listar três áreas para verificar em seu arquivo de alias para garantir que seja um JSON válido.
Por que mapear regras?
Brandon quer adicionar regras detalhadas de mapeamento ao seu arquivo de alias. Essas regras permitem que ele mapeie e redirecione os compradores para um nome de host adequado, um pipeline específico ou uma página de destino. Para cada evento, pode ser uma mistura de mapeamentos e redirecionamentos. No entanto, ele precisa de, pelo menos, uma regra de mapeamento no arquivo para cada nome de host ou nome de domínio para o qual ele tem conteúdo de loja virtual. Além disso, seu serviço de nome de domínio (DNS) tem que conter endereços IP que correspondem a um dos endereços IP na instância de produção.
Eis um exemplo de regra de mapeamento.
"www.cloudkicks.com" : [{"pipeline": "Home-Show" }],
O nome de host www.cloudkicks.com faz mapeamento para o pipeline Home-Show.
Nome de host adequado
Brandon quer redirecionar um nome de host comumente usado para o nome do host adequado. O site aceita conexões para o nome comum, depois redireciona ou altera a URL para um nome de host mais apropriado.
Veja aqui um exemplo.
"cloudkicks.com": [ { "host": "www.cloudkicks.com", "path":"/home" }]
Quando o comprador digita cloudkicks.com como URL, o Salesforce B2C Commerce o redireciona para www.cloudkicks.com/home, um nome de host adequado — porque Brandon o definiu. No entanto, o B2C Commerce redirecionaria cloudkicks.com/mens para www.cloudkicks.com/mens.
Sintaxe das regras de mapeamento
Cada regra de mapeamento, definida por um conjunto de atributos, fica mais ou menos assim.
{ "www.cloudkicks.com":[{"pipeline":"Home-Show", "apply-to-host-only-request-with-params":"true"}] "name": "mobile", "if-agent-contains": ["iphone","ipod"], "if-site-path": "DE", "host": "m.cloudkicks.com", "path": "index.html", "pipeline": "Summer-Start", "locale": "de", "params": {...}, }
Veja como o B2C Commerce lê cada parte desta regra.
Elemento |
Descrição |
---|---|
"apply-to-host-only-request-with-params":"true"}] |
O B2C Commerce processa a funcionalidade de redirecionamento em solicitações somente de host com parâmetros por padrão. Quando esta propriedade é verdadeira, o manuseio padrão é desativado, as solicitações são encaminhadas para o pipeline definido e os parâmetros preenchidos na memória. |
"name": "mobile", |
o nome da regra. Isso é apenas para documentação e não é interpretado pelo sistema. |
"If-agent-contains": ["iphone","ipod"], |
A regra é aplicada ao agente de usuário correspondente. A regra em si pode ser um mapeamento de pipeline ou um redirecionamento. O formato JSON não permite uma instrução ELSE dentro de um bloco de código; ele só executa o host de uma linha. Então você precisa de outro bloco de www para lidar com navegadores regulares que não correspondem ao dispositivo móvel. |
"if-site-path": "DE", |
o B2C Commerce reconhece apenas as propriedades nome, localidade, pipeline e params, e ignora as propriedades host, path e if-agent-contains. O B2C Commerce também verifica esta propriedade quando gera URLs de loja virtual. Ele usa a primeira regra de mapeamento que corresponde ao nome de host e localidade atuais. Se a regra de mapeamento que corresponde especificar um valor para a propriedade if-site-path, o B2C Commerce adicionará o caminho do site à URL gerada. |
"host": "m.cloudkicks.com", |
o nome do host para o qual a solicitação é redirecionada. As regras ficam assim: {"host":"cloudkicks.com", "path":"uk"} ou assim: {"host":"cloudkicks.com", "pipeline":"Home-Show"} Quando você especifica ambos, o redirecionamento não fica claro, porque as solicitações com nome de host antigo + caminho são redirecionadas para o nome de host novo + caminho, que é usado para solicitações somente de host. Se você precisar escolher entre esses parâmetros, use o pipeline. |
"path": "index.html", |
o caminho para o qual o comprador é redirecionado através de um redirecionamento permanente 301. O B2C Commerce constrói uma URL anexando o valor da propriedade do caminho ao valor da propriedade de host, como por exemplo: cloudkicks.com/index.html. Você tem que configurar a propriedade de host para que a propriedade do caminho funcione. O B2C Commerce adiciona o valor da propriedade do caminho ao valor da propriedade de host somente se a URL inserida for uma solicitação somente de nome de host. Caso contrário, o B2C Commerce adiciona o caminho extraído da URL de solicitação ao valor da propriedade de host. |
"pipeline": "Summer-Start", |
o hostName que é usado se não for fornecido nenhum host que acione o pipeline. Use a sintaxe de localidade e params para especificar uma localidade e parâmetros para o arquivo. |
"locale": "de", |
isso estabelece uma localidade para cada solicitação mapeada através desta regra, como por exemplo: /us/mens. |
"params": {...}, |
isso adiciona parâmetros para se a regra for exatamente como solicitado. Por exemplo, /us/ (sim) e /us/mens (não). |
Depurar o arquivo de alias
A sintaxe de arquivo do nome de host do B2C Commerce foi inspirada em JSON, mas não é estritamente JSON. Parte da sintaxe não é JSON válido, então Brandon pode precisar mudar algumas coisas antes de Vijay testar seu arquivo com um depurador. Ele confere o seguinte.
- Use dois pontos em vez de sinais de igualdade ao especificar propriedades. Sinais de igualdade não são JSON válido, embora sejam compatíveis com a sintaxe do nome de host.
- Remova todos os comentários em seu arquivo. Os comentários não são JSON válido.
- Remova as vírgulas após as entradas do host, porque vírgulas não são JSON válido. No entanto, elas são necessárias para o arquivo de nome de host do B2C Commerce, então lembre-se de colocá-las de volta depois de depurar seu arquivo.
Vijay testa se as regras de Brandon são JSON válido em uma ferramenta de depuração, como o validador JSONlint — e não no Business Manager, através de tentativa e erro. Se o arquivo contiver erros de JSON, o B2C Commerce continua usando a configuração anterior correta e não salvará uma configuração inválida.
Tempo de teste
Na hora de testar, Brandon nem sempre consegue a ajuda de Vijay para configurar e registrar o DNS e nomes de domínio para seu ambiente de teste. Em vez disso, Brandon os configura em sua máquina local.
Veja como testar sua configuração:
- Determine o endereço IP do seu sistema de teste.
- Abra uma linha de comando.
- Digite nslookup cloudkicks.domain.demandware.net.
- Adicione um mapeamento de nome de host ao arquivo de hosts da máquina da sua localidade, normalmente localizado em /etc/hosts.
- Use este ou todos os nomes de host que estão apontando (localmente) para a instância para verificar e testar a configuração de seus hosts.
Cenários
Brandon está pronto para analisar alguns cenários.
Primeiro cenário: Controlar a barra do caminho do site
Brandon quer controlar a barra do caminho do site para cada caminho do site que tem uma configuração de site-caminho-barra. Isso significa que ele muda a URL de não ter nenhuma barra para ter uma barra.
Veja como configurar o nome de host preferido do site HTTP/HTTPS.
"settings" : { "http-host" : "www.cloudkicks.com", "https-host" : "www.cloudkicks.com", "site-path": "en", "site-path-trailing-slash" : "yes" }
Veja como configurar as regras do nome de host para duas localidades.
"www.cloudkicks.com" : [ { "locale" : "default" }, { "if-site-path": "en", "site-path-trailing-slash" : "yes", "locale" : "en" }, { "if-site-path": "de", "site-path-trailing-slash" : "no", "locale" : "de" } ]
Veja como o B2C Commerce redireciona essas solicitações.
De |
Para |
---|---|
www.cloudkicks.com/en |
www.cloudkicks.com/en/ |
www.cloudkicks.com/de/ |
www.cloudkicks.com/de |
Segundo cenário: Redirecionar de uma URL alternativa para um domínio preferido
Esta é a configuração do arquivo de alias.
"cloudkicks.com": [ { "host": "www.cloudkicks.com", } ],
E as duplicatas?
Quando o mesmo conteúdo aparece em um site de duas ou mais URLs sem redirecionamento, a maioria dos mecanismos de pesquisa diminui a classificação de pesquisa para essas páginas. Brandon evita conteúdo duplicado para obter as melhores classificações de pesquisa para suas páginas.
O Salesforce B2C Commerce lida automaticamente com a maioria dos mapeamentos de URL duplicados sem alteração de configuração. Para mapeamentos de arquivos de alias (regras somente de host e caminhos do site), no entanto, você pode adicionar mapeamentos para redirecionamentos automáticos.
Veja como fazer isso.
- Use regras de recursos duplicadas para criar URLs através da API de script do B2C Commerce.
- Configure regras para definir pipelines que tenham pontos de entrada de URL duplicados ou sejam equivalentes contextuais para um nome de host.
- Defina o destino preferido.
O B2C Commerce gera URLs usando o primeiro mapeamento aplicável.
Criar regras de URL para evitar conteúdo duplicado
Brandon quer marcar um pipeline (StartNode) para ser verificado quanto a URLs duplicadas (definidas dentro do arquivo de aliases como regra somente de host ou de site-caminho). Um redirecionamento acontece automaticamente se a URL não for o que ele definiu como a configuração de destino preferido.
Existem três tipos de destino — host, site-caminho e pipeline — com host e site-caminho exigindo uma regra correspondente. O B2C Commerce usa a primeira regra aplicável para redirecionar URLs duplicadas e para gerar URLs.
Veja aqui um exemplo.
"www.cloudkicks.com" : [ { "pipeline" : "StartNode" }, { "if-site-path" : "eu", "pipeline" : "StartNode" }, { "entry-point-pipeline" : [ "Home-Show" ], "entry-point-destination" : [ "host", "site-path", "pipeline" ] } ]
Com essa configuração, o B2C Commerce redireciona automaticamente todas as solicitações que identificam o pipeline StartNode para o destino somente de host. A URL somente de host invoca o pipeline.