• Главная
  • Карта сайта
Не найдено

Redirecionar .htaccess: redirecionar para outro domínio e redirecionar para outra página

  1. Redirecionamento .htaccess: redirecionamento permanente, 301
  2. Como configurar um redirecionamento para www (ou sem www)
  3. Como criar o .htaccess
  4. O arquivo .htaccess não funciona
  5. Existe algum análogo de .htaccess no nginx?
  6. Publisher
  7. x64 (também conhecido como andi)

Bom domingo!

Muitas vezes, nos fóruns, você pode encontrar perguntas sobre o .htaccess - o arquivo de configuração do servidor web Apache. O principal obstáculo é que o desenvolvimento não tem a tarefa de configuração conveniente para o usuário final (a distribuição não inclui um shell para instalações visuais usando caixas de seleção, listas suspensas, etc.), mas administradores de servidores lidam com essa tarefa notavelmente, estando satisfeitos com "mana" (da equipe do Linux - man - um tutorial rápido de desenvolvedores, ou neste caso de profissionais para profissionais).

Na maioria dos casos, são necessárias manipulações simples: redirecionamento incondicional para outro site ou redirecionamento de um lugar para outro (digamos, quando a URL da seção for alterada). E cada pessoa começa a acreditar que definitivamente não há problema algum, e é inútil procurar uma solução na Internet e pesquisar no fórum. Vamos ver o que esses problemas realmente não são.

Vamos ver o que esses problemas realmente não são

Redirecionamento .htaccess: redirecionamento permanente, 301

Essa coisa tem nomes diferentes. Neponyatki pode causar talvez esse número - porque é 301? A essência está no próprio protocolo HTTP, que responde às solicitações do cliente com um código de status específico. O código 404 não encontrado é conhecido por quase todos. O código 200 OK é quase desconhecido, mas significa que tudo está em ordem e o documento será mostrado no navegador. Mas o código 301 movido permanentemente significa que o documento finalmente foi movido para um novo endereço. Isso é o que geralmente é chamado de redirecionamento, embora o conjunto de respostas total seja designado como - 3xx: Redirecionamento .

O Apache tem várias opções para redirecionamentos. O módulo mod_rewrite fornece um excelente mecanismo para trabalhar com redirecionamentos, e no futuro vou usá-lo nos exemplos. O módulo mod_alias também tem diretivas para redirecionamentos de um endereço específico ou de um endereço que corresponda à expressão regular:
Redirect permanente / http://newsite.ru/
RedirectMatch permanente. * Http://newsite.ru/
Mas mod_rewrite tem opções adicionais para redirecionamento, então é melhor usar (IMHO) isso.

Em geral, para um redirecionamento externo incondicional (vamos chamá-lo de usuário), no qual o navegador redireciona automaticamente para outra página, geralmente imperceptivelmente para o usuário (a barra de endereço muda), você pode colocar esse código em .htaccess:
RewriteEngine On
RewriteRule. * Http://newsite.ru/ [L, R = permanente]
Aqui, a primeira linha inclui o mecanismo do módulo mod_rewrite , que é permitido fazer qualquer coisa com os endereços. Vamos chamar esta conversão de URL por condições na mosca. A segunda linha define diretamente a regra de conversão, no exemplo acima, todas as solicitações serão redirecionadas para http://newsite.ru/. Os sinalizadores são colocados entre colchetes: L - última (última) regra, R - tipo de redirecionamento (Redirecionar), indicada como R = código, onde o código é uma designação alfabética ou numérica (permanente ou 302).

Na verdade, mod_rewrite é uma coisa muito útil, porque é por isso que muitos motores usam ativamente o chamado CNC (Human URL Understandable). Se você não estiver familiarizado com este termo, explicarei com um exemplo. Artigo sobre motores livres para o site tem o endereço: https://a-panov.ru/2014/11/free-cms/

Observando esta URL, fica imediatamente claro que o artigo foi publicado em novembro de 2014. Ao remover o título com uma barra à direita - https://a-panov.ru/2014/11/ -, receberemos uma lista de todas as publicações de novembro. Endereços normais, digite:

https://a-panov.ru/?p=389

nenhuma simpatia especial. Vendo esse endereço, você não pode dizer sobre a página em que ele leva, absolutamente nada.

Esse método é bom quando você não se importa com a página do novo site para vincular. Mas se você mudou para outro domínio, é aconselhável redirecionar todas as solicitações enquanto mantém os endereços. Para fazer isso, use o seguinte código:
RewriteRule ^. * $ Http://newsite.ru/$0 [QSA, L, R = permanente]
O novo sinalizador QSA também salvará os parâmetros que podem ser encontrados nos endereços após o ponto de interrogação. No exemplo já familiar:

https://a-panov.ru/?p=389

se eu colocar o código no .htaccess acima, então haverá um redirecionamento para o endereço http://newsite.ru/?p=389 que sem esse flag não existiria.

De agora em diante, omitirei a diretiva de inclusão de transformação:
RewriteEngine On
lembre-se: se você usar o mecanismo mod_rewrite, todas as condições / conversões devem ser realizadas após esta diretiva. Para desativar a seguinte linha é usada:
RewriteEngine Off
portanto, para cada regra não há necessidade de “ligar” transformações constantemente - ela começa a ser feita automaticamente, imediatamente após a primeira diretiva.

Como configurar um redirecionamento para www (ou sem www)

Esses redirecionamentos são necessários para os casos em que o site esteja disponível nas opções nsite.ru e www.nsite.ru, nesse caso, os mecanismos de pesquisa os consideram duplicados e podem escolher uma das opções como espelho principal , ou na pesquisa, haverá opções de ambos os domínios. Em geral, esse é um fator negativo ao classificar um site.

Opção mais fácil para um domínio. O redirecionamento é executado a partir do subdomínio www.site.ru para site.ru:
RewriteCond% {HTTP_HOST} ^ www \ .nsite \ .ru $
RewriteRule. * Http://nsite.ru/$0 [QSA, L, R = permanente]
Foi aí que surgiu a nova diretiva RewriteCond , que define a condição sob a qual os redirecionamentos devem funcionar - as regras de RewriteRule . A condição, neste caso, o nome de domínio correspondente a www.nsite.ru (em expressões regulares, o símbolo de ponto significa "qualquer caractere", por isso é aconselhável protegê-lo com uma barra invertida).

O redirecionamento reverso também é muito simples:
RewriteCond% {HTTP_HOST} ^ nsite \ .ru $
RewriteRule. * Http://www.nsite.ru/$0 [QSA, L, R = permanente]
Ambas as opções estão funcionando, mas eles têm um pequeno menos - para cada nova configuração é necessário substituir o domínio nsite.ru com o seu próprio. É possível fazer uma opção única? Fácil!

Redirecionar de qualquer subdomínio www:
RewriteCond% {HTTP_HOST} ^ www \. (. *) $
RewriteRule. * Http: //% 1 / $ 0 [QSA, L, R = permanente]

Redirecionar para um subdomínio com www:
RewriteCond% {HTTP_HOST}! ^ Www \.
RewriteRule. * Http: //www.% {HTTP_HOST} / $ 0 [QSA, L, R = permanente]

% {HTTP_HOST} - domínio atual

Como criar o .htaccess

Tais questões também surgem. O problema é que o Explorer padrão (o aplicativo no Windows, que é responsável pela interface gráfica) não permite criar arquivos começando com um ponto (criando arquivos ou pastas clicando com o botão direito do mouse na área de trabalho ou em uma janela e selecionando a ação desejada na lista Criar ). Mas há uma saída: abra o gravador padrão do Bloco de notas, selecione Arquivo → Salvar como ... no menu e especifique .htaccess como o nome do arquivo salvo - depois disso, ele será criado.

O arquivo .htaccess não funciona

Há casos em que diretivas de um arquivo não funcionam. Isso geralmente é causado pelo fato de que o suporte do .htaccess está desabilitado na configuração do Apache, pela qual a diretiva é responsável:
AllowOverride none

Isso geralmente é feito para aumentar um pouco a velocidade - nesse caso, o servidor da Web não pesquisa e analisa o .htaccess.

Também é possível que o Apache não seja usado no servidor, por exemplo, o IIS é o principal “convidado” na hospedagem do Windows. Para esclarecimentos, entre em contato com o suporte do seu hoster.

Existe algum análogo de .htaccess no nginx?

Outra questão bastante frequente. Neste servidor web, isso não é possível. No entanto, isso geralmente não é necessário. O fato é que o nginx é geralmente instalado como um frondend, isto é, aceita e processa todas as solicitações que ele próprio executa ou redireciona para o backend, que pode ser executado pelo Apache, que pode ser configurado usando .htaccess.

Publisher

não online 1 dia

x64 (também conhecido como andi)

Comentários: 2834 Publicações: 394 Inscrito: 02-04-2009

Htaccess no nginx?
Neponyatki pode causar talvez esse número - porque é 301?
Ru/?
Ru/?
Ru/?
É possível fazer uma opção única?
Htaccess no nginx?
Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью