Na stránky jsem právě obnovena, rád bych htaccess redirect chytat všechny non-existující podstránky pod /blog/
jen bod /blog/
a ne 404 (takže /blog/old-page/
by jen přesměrování na /blog/
). Je však důležité, že stále ještě existující podstránky (např. /blog/new-page/
) nejsou přesměrovány. To je také nejlepší, když to může být v kořenovém souboru htaccess (ne v podsložce). Mám pocit, že jsem se snažil všechno, ale nemůže najít řešení pro to, aniž by přesměrování pro každý starý podstránka (tam jsou >100)!
Doufám, že někdo může pomoci.
Pokud jsou všechny vaše staré stránky byly formuláře /blog/<old-page>/
a dříve mapovány na fyzické adresáře (z nichž DirectoryIndex
dokument byl doručen), pak si můžete udělat něco jako následující pomocí mod_rewrite v horní části kořene .htaccess
soubor:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(blog/)[^/]+/$ /$1 [R=301,L]
$1
v substituční řetězec je zpětný odkaz na první zachycení skupiny v RewriteRule
vzor, tj. "blog/". To prostě šetří opakování.
Stranou: Jen opakovat obavy vyjádřené v komentářích. S ohledem na SEO a uživatele, je pravděpodobné, že horší než vlastní 404 odpověď, která vysvětluje, chybějící stránky(s). Vyhledávače budou pravděpodobně vidět (mnoho na jeden redirect) jako soft-404 stejně a uživatelé jsou více pravděpodobné, že být jen "zmatený" (a skákat), když vidí jiného obsahu na to, co očekávají. Tam opravdu není náhražkou za "staré" na "nové" (one-to-one) 301 přesměrování.