Eu tenho um site multilíngue e de vários domínios. Ele é executado através de uma instalação exclusiva do CMS (Drupal), então eu tenho um único diretório raiz. Portanto, se eu tenho um robots.txt estático, só posso mostrar os arquivos para um único domínio, tanto quanto eu sei.
Eu poderia colocar uma linha em .htaccess
Redirect 301 /robots.txt /robots.php
(ou instrução equivalente e, por favor, indique qual, se permitido)
então ele redireciona para um arquivo php dinâmico, onde eu posso servir diferentes conteúdos de acordo com o $_SERVER['HTTP_HOST']
?
E a mesma pergunta para sitemap.xml , para que eu possa servir um sitemap.php dinâmico que indica links diferentes para cada domínio diferente.
O problema de não usar .txt e .xml é, como mencionado, que todos os domínios compartilham um único diretório físico no computador servidor.
Respostas:
Você pode tornar qualquer arquivo dinâmico. A melhor maneira de fazer isso não é através de redirecionamentos, mas através de regras de reescrita.
Dessa forma, você o habilita com um script dinâmico, mas a URL não muda. A maioria dos rastreadores (incluindo o Googlebot) seguirá redirecionamentos para robots.txt , mas alguns rastreadores ficarão confusos se você introduzir redirecionamentos.
Observe que, mesmo que você o use com PHP, seu robots.txt deve parecer estático para cada rastreador de cada domínio. É bom veicular conteúdo diferente para domínios diferentes ou mesmo para diferentes agentes de usuário. No entanto, exibir conteúdo diferente aleatoriamente ou com base na hora do dia pode realmente confundir os rastreadores dos mecanismos de pesquisa e atrapalhar o seu SEO.
Os Sitemaps são bons para nomear como quiser. Você pode redirecioná-las ou usar uma regra de reescrita para ativá-las dinamicamente no mesmo URL. Você também pode nomeá-los como
Em seguida, consulte-os no robots.txt :
ou envie-os aos mecanismos de pesquisa manualmente por meio de suas ferramentas para webmasters ou console de pesquisa.
fonte
RewriteRule ^robots\.txt$ robots.php [L]
sem o símbolo \.^/robots\.txt$
) seria necessário se essa diretiva estivesse na configuração do servidor, mas sim, ela não corresponderá nos arquivos .htaccess por diretório. O prefixo de barra na substituição (ou seja/robots.php
) é opcional neste caso.Sim, da mesma forma que qualquer solicitação pode ser "dinâmica".
No entanto, você não redirecionaria (como no seu código de exemplo), você deve reescrever internamente usando mod_rewrite. (O mesmo que o Drupal provavelmente já está fazendo.)
Por exemplo, no seu arquivo .htaccess raiz:
RewriteEngine
deve ocorrer apenas uma vez (embora realmente não importe se ocorre várias vezes).Você só precisa garantir que não entre em conflito com outras diretivas do seu arquivo .htaccess. Portanto, isso provavelmente deve estar próximo do início do arquivo, certamente antes do seu controlador frontal .
fonte
Tornar dinâmico o arquivo do mapa do site é bom - é uma boa maneira de atualizar automaticamente seus mapas de site.
Tornar o arquivo robots.txt dinâmico (para o mesmo host! Fazer isso para hosts separados é essencialmente apenas um arquivo robots.txt normal para cada um deles.) Provavelmente causaria problemas: ele não é rastreado toda vez que um URL é rastreado no site , para que a versão "incorreta" seja armazenada em cache. Por exemplo, se você bloquear o rastreamento do arquivo robots.txt durante o horário comercial, é possível que ele seja armazenado em cache e seguido por um dia - o que significa que nada é rastreado (ou, alternativamente, armazenado em cache quando o rastreamento é permitido). O Google rastreia o arquivo robots.txt cerca de uma vez por dia para a maioria dos sites, por exemplo.
fonte
Não há necessidade de criar sitemap.php porque: 1. Para cada idioma, você pode executar um arquivo sitemap.xml separado e especificar cada um nos consoles do mecanismo de pesquisa. 2. Os arquivos de sitemap padrão podem ser reescritos regularmente para incluir conteúdo recente e os tornam dinâmicos - pois esse arquivo .php não é necessário. Cabe ao mecanismo de atualização interno e ao cron recriar o mesmo arquivo com a extensão padrão .xml
Os arquivos Sitemap.xml são estáticos e apenas as atualizações os tornam dinâmicos - eles não são atualizados em tempo real. É possível fazer com que eles reescrevam a cada minuto, mas não há necessidade porque: 1. O Google não faz o check-in em menos de uma hora desde o último envio 2. Quando os arquivos do sitemap são grandes, reescreva-os muitas vezes fará com que o desempenho do servidor diminua.
Quando há um grande volume de dados e o arquivo do sitemap é maior que 50mb, é necessário um sistema com vários sitemaps. Isso significa que o sitemap2,3 ... .xml será adicionado à lista do arquivo principal, mas o conteúdo desses arquivos também será corrigido até que esses arquivos sejam recriados (pelo cron, por exemplo).
Além disso, uma vez que um mecanismo de pesquisa acessou o arquivo, ele não retornará a ele muito rapidamente (a menos que seja feito manualmente). Ele confirma que não é necessário, em nenhum caso, criar uma atualização em tempo real do sitemap.php, porque um sitemap.xml normal por si só pode ser dinâmico, atualizando com novo conteúdo ao longo do dia ou uma semana.
Não consigo pensar em nenhum profissional usando um sitemap.php. Não será bom, pois existem outras maneiras melhores / adequadas de usar esses arquivos.
fonte