ti-enxame.com

301 comportamento de redirecionamento em um sistema drupal

Estou migrando um site mais antigo para um mais novo, que está usando o Drupal. Como parte disso, estou tentando configurar alguns redirecionamentos 301 para as novas páginas, mas estou tendo um comportamento inesperado. Adicionei a seguinte linha ao meu arquivo .htaccess:

redirect 301 /redirect.html http://www.example.com/newpage

Infelizmente, o que acontece é que sou levado a:

http://www.example.com/newpage?q=redirect.html

O que, obviamente, não carrega corretamente. Alguma ideia?

3
Joe Corkery

Então, depois de um pouco de pesquisa, encontrei a resposta aqui . É semelhante ao danlefree, mas um pouco diferente.

<IFModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /

    # custom redirects

    RewriteRule ^redirect\.html$ http://www.mysite.com/newpage [R=301,L]

    # end custom redirects

    ...
</IFModule>

Isso parece fazer o trabalho.

3
Joe Corkery

Esqueça .htaccess. Use o redirecionamento global . Fornece o seguinte:

  1. Verifica o URL atual em busca de um alias e faz um redirecionamento 301 para ele, se não estiver sendo usado.
  2. Verifica o URL atual para uma barra final, remove-o, se presente, e repete a verificação 1 com a nova solicitação.
  3. Verifica o acesso ao URL. Se o usuário não tiver acesso ao caminho, nenhum redirecionamento será feito. Isso ajuda a evitar a exposição de nós com alias privados.

Ele simplifica um pouco a migração do seu site e, provavelmente, o mais importante, facilita a pesquisa exata do que está sendo redirecionado para onde. (como existe uma interface de usuário)

Bônus ( imagine clippy aparecendo aqui )

Parece que você está criando algo semelhante a RLs limpos . Eu acho que você poderia estar interessado em pathauto .

2
cgp

Suas outras regras de reescrita estão interferindo.

Tente o seguinte:

RewriteEngine on

RewriteRule ^/redirect\.html$ http://www.mysite.com/newpage [L,R=301]

# ... existing rewrites
0
danlefree

Costumávamos Módulo de redirecionamento de caminho para esse propósito. Ele não pode lidar com todas as coisas poderosas que o Mod_rewrite pode, mas fez um trabalho muito bom para preservar URLs antigos.

0
acrosman