Darryl Worley: Acabei de voltar de uma guerra

Receber várias quantidades de solicitações incorretas de um URL específico, como site.foo e eu gostaria de redirecionar todas essas solicitações para uma página dedicada. o .htaccess o código que pesquisei e implementei é:

RewriteCond %{HTTP_REFERER} http://site.foobar RewriteRule ^ https://bar.com/notallowed.html? [R=301,L] 

No entanto, ao pesquisar os códigos de status HTTP, ainda não tenho certeza com relação ao 301:

301 Moved Permanently This and all future requests should be directed to the given URI. 

ou o 403:

403 Forbidden The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account of some sort. 

Então, qual é o caso de uso adequado e estou usando a regra de reescrita adequada? Existe um código de status HTTP adequado a ser usado para impedir referências incorretas?

Em minha pesquisa, encontrei:

  • Redirecionar com base no domínio referenciador
  • Como você bloqueia um referenciador, mas para um URL específico usando .htaccess?
  • Posso bloquear um site de referência do meu site?
  • Como bloquear o URL completo de um referenciador e não apenas o domínio
  • Como bloquear o tráfego de referência de vários referenciadores e subdomínios no arquivo .htaccess?

No caso de a próxima pessoa que cruzar com isso estiver curiosa.

  • Esta referência é spam? Ou este outro site está genuinamente vinculado a você?
  • Este é um site de spam e editei a pergunta e adicionei a tag de spam.
  • 1 Pessoalmente, eu usaria um 403. Um 301 não me envia a mensagem certa. Além disso, se o Google seguir os links, ele também receberá a mensagem. Felicidades!!
  • Pessoalmente, eu usaria o redirecionamento 301 para esta ou mesmo esta mas 403 é mais correto para PC ou até melhor bloqueá-los antes mesmo de chegarem ao HTTPd usando Fail2ban ou similar.
  • 1 Concordo com a devolução de um 403 também. Reserve seus redirecionamentos 301 para caminhos de url migrados internamente (mudança de endereços).

Eu usaria o status "403 Proibido". Você só precisa alterar sua regra de reescrita

RewriteCond %{HTTP_REFERER} http://site.foobar RewriteRule ^ - [F] 

Referência: https://httpd.apache.org/docs/trunk/rewrite/flags.html#flag_f

  • Rusty no meu htaccess. Você se importa em explicar como isso é diferente do que eu acima em relação à regra de reescrita? Acho que tenho minha condição correta. Você fica entediado ao redirecionar para o Google?
  • 1 Você não seria atingido, mas o status 403 é a coisa correta a ser usada. Acabei de alterar sua regra de reescrita para usar o [F] o que torna o pedido proibido. Liguei para a documentação para isso.

funcionou para você: Charles Robertson | Quer entrar em contato conosco?