Pergunta

Mudei um ex-site baseado no Joomla para wordpress. Import funcionou bem, mas o problema é que os links antigos não funcionam mais. Porque há apenas 50 ou mais artigos, eu pensei que vai ser uma boa idéia de colocar uma regra para cada post (em .htaccess).

Bem ... Nem sempre as coisas são como você quer, então redireciona trabalho não faça nada: (

Links Joomla velho olha como este:

http://site.com/index.php?option=com_content&task=view&id=49&Itemid=29
http://site.com/index.php?option=com_content&task=view&id=42&Itemid=29
http://site.com/index.php?option=com_content&task=view&id=68&Itemid=29

e precisam ser traduzidos para:

http://site.com/?p=23
http://site.com/?p=24
http://site.com/?p=25
  • basicamente há relações entre links antigos e novos, então eu não acho que um regex vai ajudar

  • antigo e novo site são no mesmo domínio

Ok, o problema é que qualquer regra que eu tentei (e eu tentei um monte!), Nenhum funcionou. em alguns casos eu recebo 500 erro, mas na maioria das vezes o redirecionamento não funcionou.

Assim, algum de vocês teve mesmo problema? Eu quero não é necessário ter nice permalinks, mas se eu posso, que vai ser melhor. O problema é que eu tenho muitos backlinks para old url do e eu não quero perdê-los.

Thanks a lot guys!

Foi útil?

Solução

Uma vez que a conversão do seu site sobre a Wordpress é relativamente novo, há alguma coisa impedindo-o de usar o velho Joomla! ID está em seu banco de dados tabela WP? Isso permitirá que você usar um regex bastante facilidade.

Outra opção seria criar um script PHP separado que manipula o Joomla! URLs então redireciona para os Wordpress. Então você teria um regex na sua configuração do Apache detectar index.php? Option = com_content & task = view URLs, encontrar o valor para 'id', em seguida, redirecionando para someotherscript.php que teria um mapa de seus ids de Joomla! para Wordpress. Este script, então, usar header ( 'Location:? P ='. $ Id). Para redirecionar para a página correta no Wordpress

Outras dicas

Obrigado pela idéia! Eu coloquei isso em index.php (wordpres padrão):

if(isset($_GET['option'])) {
    if(is_numeric($_GET['id'])){
        header ('HTTP/1.1 301 Moved Permanently');
        header("Location: http://www.site.com/?p={$_GET['id']}");
        die();
    }else {
        die('Hacking attempt');
    }
}

e funciona como ... ótimo! : D

Outra opção poderia ter sido usar um plugin redirecionamento para fazer isso por você. Salva a solução quebrar cada vez que você alterar ou atualizar o seu tema.

Eu tive um problema muito semelhante com alguns CMS desconhecidos para Joomla. Se você quiser fazê-lo com .htaccess no Apache há uma maneira, mas se houver absoluta nenhuma relação entre o URL antigo eo novo URL que você tem que escrever duas linhas para cada par URL.

RewriteEngine On
# now the first Example
RewriteCond %{QUERY_STRING} ^option=com_content&task=view&id=49&Itemid=29$
RewriteRule ^index\.php$ /?p=23 [R=301,L]
# Repeat last two lines for all your URLs

Eu não tenho certeza se você realmente tem esse tipo de novas URLs. Pessoalmente um SEF URL seria melhor g .: https://example.com/path/to/new/page

Se você quiser fazer isso do que você pode fazer isso, mas você tem que adicionar um? no final o destino de outra forma o velho seqüência de consulta que serão acrescentadas novo destino assim: https://example.com/path/to/new/page?option=com_content&task=view&id=49&Itemid=29 portanto, para este exemplo fazê-lo da seguinte forma:

RewriteCond %{QUERY_STRING} ^option=com_content&task=view&id=49&Itemid=29$
RewriteRule ^index\.php$ /path/to/new/page? [R=301,L]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top