Htaccess per reindirizzare del non-esistente sottopagine

0

Domanda

Per un sito che ho appena rilanciato, vorrei un htaccess redirect cattura tutti i non-esistente sottopagine sotto /blog/ basta scegliere /blog/ e non è un 404 (così /blog/old-page/ sarebbe solo un redirect a /blog/). È importante, tuttavia, che ancora esistenti sottopagine (come /blog/new-page/) non vengono reindirizzati. E ' anche meglio se questo può essere nella root il file htaccess (non nella sottocartella). Mi sembra di aver provato di tutto, ma non riesco a trovare una soluzione per questo, senza fare redirect per ogni singola vecchio sottopagina (ci sono >100)! Spero che qualcuno possa aiutare.

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

Migliore risposta

2

Se tutti i vecchi Url della pagina erano di forma /blog/<old-page>/ e precedentemente mappato directory fisiche (da cui una DirectoryIndex il documento è stato servito), allora si può fare qualcosa di simile che utilizza mod_rewrite in cima principale .htaccess file:

RewriteEngine On

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

$1 in sostituzione di una stringa è un riferimento al primo gruppo di cattura in RewriteRule modello, vale a dire. “blog“. Questo, semplicemente, salva la ripetizione.

A parte: Giusto per ripetere la preoccupazione espressa nei commenti. Per quanto riguarda il SEO e gli utenti, questo è probabilmente peggio di un 404 personalizzata risposta che spiega la mancanza di pagina(s). I motori di ricerca sarà probabilmente vedere questo (molti-a-uno redirect) come un soft-404 e comunque gli utenti sono più probabilità di essere solo "confuso" (e di rimbalzo) quando vedono un contenuto diverso da ciò che si aspettano. Non c'è davvero alcun sostituto per il "vecchio" al "nuovo" (one-to-one) redirect 301.

2021-11-25 11:06:08

In altre lingue

Questa pagina è in altre lingue

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