Redirecionando a /? P = xxx wordpress URL
-
10-07-2019 - |
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.
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.