Qual regra de redirecionamento eu usaria para redirecionar todas as páginas olddomain.example
a serem redirecionadas newdomain.example
?
O site tem uma estrutura totalmente diferente, portanto, desejo que todas as páginas do domínio antigo sejam redirecionadas para a nova página de índice do domínio .
Eu pensei que isso faria (no diretório base olddomain.example):
RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.example/ [R=301]
Mas se eu navegar para, olddomain.example/somepage
sou redirecionado para newdomain.example/somepage
. Estou esperando um redirecionamento apenas para newdomain.example
sem o sufixo da página.
Como mantenho a última parte de fora?
.htaccess
mod-rewrite
Yuval Adam
fonte
fonte
RewriteEngine on
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]
* stackoverflow.com/a/7578810/1066234Respostas:
Pode ser assim:
fonte
RewriteCond %{HTTP_HOST} !^NEWDOMAIN\.com$ [NC]
?A resposta abaixo pode causar um loop infinito de redirecionamento ...
Aqui, este redireciona tudo após o nome do domínio no URL para a mesma cópia exata no novo URL do domínio:
www.example.net/somepage.html?var=foo
redireciona parawww.newdomain.com/somepage.html?var=foo
fonte
Apenas para esclarecer, depois de remover o redirecionamento de hospedagem que estava no caminho, minha solução original também funciona:
fonte
Eu usei para o meu blog Wordpress isso como .htaccess. Ele converte http: //www.blah.example/asad , http: //blah.example/asad , http: //www.blah.example2/asad etc, em http: //blah.example/asad Obrigado a todos outras respostas eu descobri isso.
fonte
Isso funcionou para mim
fonte
Existem várias maneiras de fazer isso e vários redirecionamentos, listei-os abaixo:
Redirecionamento 301 (permanente): aponte um site inteiro para um URL diferente em uma base permanente. Esse é o tipo mais comum de redirecionamento e é útil na maioria das situações. Neste exemplo, estamos redirecionando para o domínio "example.com":
Redirecionamento 302 (temporário): aponte um site inteiro para um URL temporário diferente. Isso é útil para fins de SEO quando você tem uma página de destino temporária e planeja voltar à página de destino principal em uma data posterior:
Redirecione index.html para uma subpasta específica:
Redirecione um arquivo antigo para um novo caminho de arquivo:
Redirecione para uma página de índice específica:
fonte
Redirect 301 / http://example.com/$1
, em seguida, todas as páginas do site original será redirecionado para a nova raiz do site$1
é necessário aqui, você está pensando naRedirectMatch
diretiva (mas ainda assim você precisaria definir um grupo de captura para a$1
referência).Redirect
diretivas sejam redirecionadas da mesma maneira, enquanto o OP está querendo redirecionar apenas para a página inicial do novo site (embora isso por si só não seja recomendado). Pode ser necessário usar aRedirectMatch
diretiva se você quiser apenas redirecionar para um URL específico.Se você deseja redirecionar de algum local para subdomínio, você pode usar:
Redirect 301 /Old-Location/ http://subdomain.yourdomain.com
fonte
RewriteEngine On
lança 500 de erro interno. É um espaço da Web muito restrito. UsarRedirect 301 / http://foo
é a única maneira possível de lidar.Se o novo domínio para o qual você está redirecionando o site antigo estiver em um host diferente, você pode simplesmente usar um
Redirect
Isso redirecionará todas as solicitações de
olddomain
para onewdomain
.Redirect
A diretiva não funcionará ou poderá causar umRedirect loop
se seu domínio novo e domínio antigo estiverem no mesmo host; nesse caso, você precisará usar omod-rewrite
redirecionamento com base no cabeçalho do host solicitado.fonte
Minha reputação não permitirá que eu comente uma resposta, mas eu só queria ressaltar que a resposta mais bem avaliada aqui tem um erro:
deve ter uma barra antes dos US $ 1, então
fonte
Minha solução como SymLinks não funcionou no meu servidor, então usei um If no meu PHP.
fonte
Este é um erro nas versões mais antigas do apache (e, portanto, mod_rewrite), em que o prefixo do caminho foi anexado ao caminho reescrito, se alterado. Veja aqui
Eu acho que foi corrigido no apache2 V2.2.12, há um sinalizador especial que você precisa usar, que adicionarei aqui quando o encontrar (acho que era NP para No Path)
fonte
Do ponto de vista da usabilidade, seria melhor se você também enviasse o caminho com a solicitação (ou seja, o que você tem no momento) e deixe o seu novo site lidar com isso:
(e melhor ainda, fazer isso automaticamente.)
Obviamente, existem muitas codificações e heurísticas para um site maior, mas, na minha opinião, valeria a pena em termos de satisfação do usuário (quando o marcador cuidadosamente salvo do produto dos seus sonhos o leva à primeira página do newdomain.com, isso é frustrante.)
fonte
Se você deseja que o redirecionamento complete um novo site (domínio) diferente sem parâmetros ou páginas, use este:
fonte
.htaccess
, pois simplesmente não corresponderá a nenhum URL na raiz do documento. Funcionaria em uma configuração de servidor ou no contexto do VirtualHost.Tentei a resposta do usuário968421 e a solução do OP, mas o navegador exibiu um erro de segurança para uma página de checkout. Eu não posso te dizer por que exatamente.
Nosso anfitrião (Site Ground) também não conseguiu descobrir.
A solução final estava próxima, mas um pequeno ajuste na resposta do usuário968421 (observação: ao contrário do OP, eu estava tentando redirecionar para a página correspondente, não apenas para a página inicial, por isso mantive a referência anterior [
$1
depois do domínio] do usuário968421 responda):Obteve o ajuste deste gerador de redirecionamento htaccess recomendado por um artigo do Host Gator (tempos de desespero, medidas desesperadas, certo?).
fonte
Simples assim e isso não levará a consulta à direita do URL para o novo domínio.
fonte
Use redirecionamentos condicionais com
Options -FollowSymLinks
eAllowOverride -Options
desabilitado pelo Hoster se alguns arquivos locais também devem ser exibidos:Sample .htaccess
Este exemplo servirá index.html local e redirecionará todas as outras equipes para o novo domínio.
fonte
Tente este método para redirecionar todos para o novo domínio da página inicial, funciona para mim:
fonte
As respostas anteriores não funcionaram para mim.
Eu usei esse código. Se você estiver usando o OSX, use o formato correto.
fonte