Zrobiłem dużo poszukiwania jak migrować moje konto Bloggera tak, że:
- Każdy blogu na starym adresie URL zostanie przekierowany do tego samego postu na blogu nowy adres URL (np.
http://old-url.blogspot.com/bar
zostanie przekierowany do http://new-url.com/bar
).
- Wykonujesz przekierowanie w sposób, który nie traci pozycji SEO. Oznacza to, że rozwiązania JavaScript (np. Zaakceptowana odpowiedź w tym poście) nie będą działać, ponieważ potrzebujesz tagu
<link rel="canonical" href="http://new-url.com/bar"/>
wygenerowanego po stronie serwera w <head>
.
Nie znalazłem satysfakcjonujących odpowiedzi, więc aby pomóc innym w przyszłości, pomyślałem, że dodam hack, który tu wymyśliłem. Powodem, dla którego potrzebujesz hackowania, jest to, że szablony blogerów używają pewnej liczby zmiennych, pętli i instrukcji if, które pozwalają na podstawowe operacje na zmiennych, ale na tyle, na ile mogę to stwierdzić, nie ma sposobu na manipulowanie ciągiem znaków w celu uzyskania transformacji adresu URL w wymaganiu # 1 powyżej. Aby obejść ten problem, można wygenerować zakodowaną listę instrukcji if, które sprawdzają wszystkie możliwe adresy URL i przekierowują je do właściwego miejsca. Coś wzdłuż linii:
<b:if cond='data:blog.canonicalUrl == "http://old-url.blogspot.com/url1"'>
<link rel="canonical" href="http://new-url.com/url1"/>
<meta http-equiv="refresh" content="0; url=http://new-url.com/url1"/>
<b:elseif cond='data:blog.canonicalUrl == "http://old-url.blogspot.com/url2"'/>
<link rel="canonical" href="http://new-url.com/url2"/>
<meta http-equiv="refresh" content="0; url=http://new-url.com/url2"/>
<b:elseif cond='data:blog.canonicalUrl == "http://old-url.blogspot.com/url3"'/>
<link rel="canonical" href="http://new-url.com/url3"/>
<meta http-equiv="refresh" content="0; url=http://new-url.com/url3"/>
<!-- And so on, one if-statement per blog post -->
Jeśli można zrobić podstawowe włączony, nie trzeba generować te IF-deklaracje (i nie może być setki) ręcznie. Zamiast tego możesz export your Blogger posts utworzyć plik XML i napisać prosty skrypt do odczytu w każdym adresie URL w tym pliku i wygenerować powyższą instrukcję if. Napisałem post na blogu o migracji z Blogger to GitHub Pages, w którym wyjaśniam wszystkie krwawe szczegóły, a skrypt Ruby, którego użyłem do wygenerowania instrukcji if jest dostępny on GitHub.Zauważ, że jest to bardzo hacky skrypt dostosowany do mojego bloga, i faktycznie działa przeciwko Jekyll konwersji XML eksportu blogger, ale możesz użyć go jako podstawy do stworzenia własnego skryptu i uniknięcia wielu dziwnych komunikatów o błędach szablonu blogger.
doskonale działa ... dzięki –
To rozwiązanie nie działa w dynamicznych widokach bloggera. Czy to powinno być coś innego? –
Czy ktoś może tłumaczyć używane regex? Chcę trochę to zmienić. – sumitkanoje