Pergunta

Eu preciso redirecionar um único Wordpress URL que está formatado como este: www.bluewidgets.com/?p=123 a um URL limpa em outro domínio. Como posso fazer isso através .htaccess? Todos os tutoriais que eu vi dizer que eu preciso especificar outra parte do url, como index.php, antes da string de consulta, mas o meu URL não tem um - é apenas o domínio e, em seguida, a string de consulta.

Foi útil?

Solução

Você não pode simplesmente adicionar ao header.php, antes de mais nada:

<?php
if ($_GET['p'] == '123') {
    header('Location:http://www.yourotherdomain.com');
exit;
}
?>

Eu fiz algo semelhante no passado. Pode não ser bonito, mas funciona -. Eu estaria interessado em ouvir de mais experientes PHP-ers se é uma tática legítima

Outras dicas

Tente esta regra:

RewriteCond %{QUERY_STRING} =p=123
RewriteRule ^$ /foo/bar? [L,R=301]

Ou usando REQUEST_URI :

RewriteCond %{REQUEST_URI} =/?p=123
RewriteRule ^$ /foo/bar? [L,R=301]

Note que os padrões RewriteCond começar com uma = que identifica uma comparação lexicográfica em vez de um teste de expressões regulares. Além disso, a consulta vazia no substituição (denotado com …?) que irá remover a consulta originalmente solicitado.

não wordpress já construído em URL prettyfication? Só por curiosidade, por que você precisa fazer isso.

Além de que, sim o que você menciona é como você faria isso via htaccess. Você está encontrando um problema com este método?

A 301 redirecionamento padrão está no formato (e estaria em domain1):

Redirect 301 /filename.php http://domain2.com/filename.php

mas eu apenas tentei isso com permalinks padrão e não funcionou.

Em domain1, você poderia reescrever a URL com o bloco wordpress reescrita padrão, e então imediatamente redirecioná-lo tp domain2. Confuso, mas ele poderia funcionar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top