O .htaccess para redirecionar de não-existentes subpáginas

0

Pergunta

Para um site que eu só relançou, eu gostaria de um redirecionamento htaccess a captura de todos os não-existente em subpáginas /blog/ de apenas um ponto para /blog/ e não um erro 404 (para /blog/old-page/ seria apenas redirecionar para /blog/). É importante, contudo, que a ainda existente subpáginas (como /blog/new-page/) não são redirecionados. É também melhor se isso pode estar na raiz htaccess (não na subpasta). Eu sinto como se eu já tentei de tudo, mas não consegue encontrar uma solução para isso sem fazer redireciona para cada idade subpágina (há >100)! Espero que alguém possa ajudar.

.htaccess
2021-11-21 15:38:40
1

Melhor resposta

2

Se todos os seus velhos URLs de página foram do tipo /blog/<old-page>/ e mapeadas anteriormente para diretórios físicos (a partir do qual um DirectoryIndex documento foi servido), em seguida, você pode fazer algo como o uso do mod_rewrite no topo de sua raiz .htaccess arquivo:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(blog/)[^/]+/$ /$1 [R=301,L]

$1 na substituição de seqüência de caracteres é um retrorreferência para a primeira captura de grupo no RewriteRule padrão, ou seja. "blog/". Isso simplesmente salva a repetição.

De lado: Só para repetir a preocupação expressa nos comentários. Com relação a SEO e usuários, este é provavelmente pior do que um 404 personalizada resposta que explica o ausente página(s). Os motores de busca provável ver este (muitos para um redirecionamento) como um soft-404 de qualquer maneira e os usuários estão mais propensos a só ser "confundido" (e rejeição) quando vêem um conteúdo diferente para o que eles estão esperando. Realmente não há substituto para o "velho" para o "novo" (um-para-um) redirecionamentos 301.

2021-11-25 11:06:08

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................