Por que todos os meus outros redirecionamentos 301 estão funcionando, exceto esses 2? (NÃO é uma string de consulta)

2

Eu tenho uma lista de mais de 100 redirecionamentos, quase todos parecem estar funcionando, exceto por dois. Estou usando o formato comum para um redirecionamento htaccess 301:

redirect 301 /shop/category.cfm/wall-decals http://wallcandyarts.com/wall-decals.html

Por mais que eu saiba, não há nada de errado nisso. As que estou tendo problemas são estas:

redirect 301 /shop/product.cfm/chalkboard-wall-panels http://wallcandyarts.com/chalkboard-decals/chalkboard-panels.html
redirect 301 /shop/category.cfm/chalkboard-decals http://wallcandyarts.com/chalkboard-decals.html

Eu li sobre problemas com strings de consulta, mas esse não é o caso aqui. Eu também vi ao montar esta lista de redirecionamentos que se o novo caminho terminasse em "/" isso faria com que ele obtivesse um resultado similar do que está recebendo com os redirecionamentos acima. Por exemplo, clicar no link link fornecerá uma URL "mashed" e eu não Não sei porque. Alguma idéia?

Esta é minha primeira incursão em qualquer coisa tão pesada com o htaccess que não envolva simplesmente copiar / colar, então perdoe minha ignorância aqui. Esperando aprender muito.

Obrigado!

ATUALIZAÇÃO: Aqui está o htaccess inteiro. Muita coisa que estava lá antes de eu adicionar 301 diretos. O código que eu adicionei começa na linha 181.

link

    
por Micah 15.08.2011 / 04:42

2 respostas

0

Os outros estão trabalhando para você? Eu tentei um punhado, e cada um que eu tentei em /shop lançou meu navegador em wall-decals.html .

http://wallcandyarts.com/shop/product.cfm/seasons-designer-pillows torna-se http://wallcandyarts.com/wall-decals.html/product.cfm/seasons-designer-pillows .

O culpado é sua última frase:

redirect 301 /shop http://wallcandyarts.com/wall-decals.html

A diretiva Redirect é baseada na correspondência de prefixo. Como a documentação diz:

Redirect /service http://foo2.bar.com/service
If the client requests http://myserver/service/foo.txt, it will be told to access http://foo2.bar.com/service/foo.txt instead.

Esta última regra, que captura todo o /shop , está atacando todas as regras que segmentam algo em /shop . Não tenho certeza de como a avaliação / prioridade é tratada para Redirect , mas RedirectMatch pode ser mais adequado às suas necessidades (ou, pelo menos, deve ser usado para essa última regra).

RedirectMatch 301 ^/shop/product\.cfm/frames-wall-decals$ http://wallcandyarts.com/wall-decals/frames-decals.html
...
RedirectMatch 301 ^/shop/?$ http://wallcandyarts.com/wall-decals.html
    
por 15.08.2011 / 05:28
0

Primeiro, você deve limitar todo esse código ao seu arquivo httpd.conf, e não ao htaccess. Mais uma ameaça à segurança, já que as pessoas podem baixá-lo livremente e usá-lo contra você. Quanto aos redirecionamentos fracassados ... as páginas de destino não existem EXATAMENTE como citadas nas regras?

    
por 15.08.2011 / 04:50