Redirect gone /path/to/resource
É a maneira correta de fazer isso. Se isso estiver causando erros, verifique se você tem mod_alias
carregado no servidor.
Em nosso site, tendemos a remover muito as páginas em que o conteúdo expirou e queremos retornar o status http 410 em vez de 404 para solicitações de páginas (arquivos físicos) que não existem em nosso servidor site é composto de arquivos estáticos).
Nós tentamos
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ - [G,L]
de esta postagem do blog , mas que apenas quebra todo o nosso site, atendendo a 410 para cada pedido.
Estamos usando o Apache 2.2.3
Redirect gone /path/to/resource
É a maneira correta de fazer isso. Se isso estiver causando erros, verifique se você tem mod_alias
carregado no servidor.
Eu acredito que a resposta de Chris é muito boa. Se você não quiser usar o script PHP, ele pode se tornar:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ - [G,L]
Não esqueça que a página mod_rewrite também tem uma compainion mod_rewrite wiki .
Crie um errorpage.php (ou qualquer linguagem de script) e faça com que o arquivo retorne um cabeçalho http: 410 Gone, e adicione o seguinte à configuração do seu apache, que basicamente diz se o URL solicitado não é um arquivo nem um diretório (ou seja, arquivo não existe), em seguida, carregue o documento errorpage.php.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /errorpage.php [L]
O errorpage.php pode ser algo tão simples como:
<?php header($_SERVER['SERVER_PROTOCOL'].' 410 Gone');
Você também pode fazer com que o arquivo errorpage.php contenha uma lista de (ou outras formas de rastreamento) páginas excluídas, para que ele possa retornar corretamente o status 404 ou 410 http, dependendo se o recurso já existia ou não.
Tags mod-rewrite apache-2.2