Como redirecionar root e somente root via htaccess?


53

Quero redirecionar apenas minha raiz para outro URL, mas manter todos os diretórios / sub / onde eles pertencem (e redirecionar)

exemplo:

mysite.com/1 redireciona para algum lugar mysite.com/admin abre uma página

Eu quero mysite.com/ redirecionar para mysecondsite.com e apenas isso com um redirecionamento 301 usando htaccess

Respostas:


75

Tente o seguinte:

RewriteEngine on
RewriteCond %{HTTP_HOST} mysite\.com [NC]
RewriteCond %{REQUEST_URI} ^/$
Rewriterule ^(.*)$ http://mysecondsite.com/ [L,R=301]

Se você não precisar verificar o domínio antigo (por exemplo, se o diretório em que seu .htaccess está colocado for usado apenas pelo domínio antigo), poderá remover a segunda linha.


11
No meu caso, eu precisava para redirecionar o tráfego para mysite.com/ mas não foo.mysite.com por isso teve de adicionar um regex para a linha 2: RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC]para garantir a partida foi para o host exato
jaygooby

É mais eficiente verificar o caminho da URL no RewriteRule padrão (como na resposta de @ DaveForgac), em vez de usar uma condição adicional para verificar a REQUEST_URIvariável do servidor.
MrWhite

38

Se você quer apenas redirecionar "/" para outro domínio, isso funcionará:

RewriteEngine on
RewriteRule ^$ http://www.example.com/ [R=301,L]

Isso só corresponde à raiz do domínio com nada depois e, portanto, só redireciona o nome do domínio sem um nome de arquivo especificado.


Uma ligeira variação funcionou para mim. Adicionado ao final do meu htaccess, depois de todas as outras regras invocadas, eu só queria renderizar uma página de boas-vindas a qualquer pessoa que estivesse visitando meu domínio raiz (sem nenhum subdomínio): RewriteCond% {HTTP_HOST}! ^ (Subdomínio1 | subdomínio2) \. Mysite \ .com $ [NC] RewriteRule ^ $ /welcome.php [NC, L]
MarsAndBack

15

Isso deve funcionar bem:

RedirectMatch 301 ^/$ https://example.com/

2
Isso seria preferível (para as respostas existentes) se você ainda não estiver usando o mod_rewrite para outros redirecionamentos.
MrWhite

-3

Uma solução mais curta:

Redirect 301 / http://mysecondsite.com/

12
Isso NÃO fará o que a jardel deseja. Ele redirecionará TODAS as páginas, e não apenas a raiz.
sharoz
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.