W debuggerze internetowym HTML strony przekierowującej 301 jest wyświetlany jako:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.website.com/webpage.htm">here</a>.</p>
</body></html>
Muszę przekierowywać strony HTML bez obsługi serwera. Jeśli zastąpię strony html powyższym kodem, czy będzie to działać tak samo, jak zapisanie przekierowań 301 w .htaccess na Apache? Sprawdziłem to w Google, ale witryny, w których mówi się o przekierowaniach 301, nie obejmowały tej opcji przekierowywania stron HTML.
html
301-redirect
JMC
źródło
źródło
Nie, zwykłe zastąpienie kodu HTML przykładem nie osiągnie oczekiwanego efektu. Po prostu pokaże tę stronę użytkownikowi, ponieważ Apache wyśle wraz z nią kod statusu „200”. Użytkownicy będą mogli kliknąć link, aby znaleźć stronę, ale nie nastąpi to automatycznie, a pająki nie będą wiedziały, że masz zamiar dokonać stałego przekierowania zasobu.
Będziesz musiał użyć właściwej dyrektywy Przekierowanie lub _mod_rewrite_ w plikach .htaccess lub Apach conf .
Alternatywnie, jeśli faktycznie używasz PHP lub czegoś podobnego, możesz ustawić kod powrotu na 301, wypisz nagłówek odpowiedzi Lokalizacja, a wtedy twoje rozwiązanie oparte na stronie będzie działać. W PHP wyglądałoby to mniej więcej tak:
źródło
Zgadzam się z Hissohathair, że twoje podejście nie przekieruje. Użytkownicy mogą wiedzieć, że kliknęli link, ale oryginalna strona nadal zwróci normalny kod stanu „200” i będzie nadal wyświetlać się w wynikach wyszukiwania (prawdopodobnie nie do końca tego, czego chcesz).
Aby utrzymać pozycję strony, kody stanu 301 są niezwykle ważne. Dodanie metatagów odświeżających jest również dobrą opcją i może pomóc w większości przypadków (zgodnie z odpowiedzią Johna), ale nie można zagwarantować, że wyszukiwarki zaakceptują je jako przekierowanie 301 w przyszłości. Dodanie odpowiednich przekierowań do pliku .htaccess (lub plików conf Apache) byłoby najlepszą opcją, aby zagwarantować wysłanie kodu stanu 301.
Edytować:
=======================
W przypadku witryny internetowej IIS7, o ile zainstalowany jest moduł Przepisz adres URL IIS, możesz utworzyć reguły przekierowania w pliku web.config dla witryny. Te zasady miałyby również zastosowanie do plików .html. Więcej informacji tutaj:
http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module/
=======================
Inną alternatywą, jeśli twój hosting nie ma możliwości .htaccess / mod_rewrite, może być zmiana używanego hosta, w którym możesz skonfigurować przekierowania po stronie serwera. Tak długo, jak witryna jest odpowiednio przenoszona, powinna być dość płynna dla użytkowników. Takie podejście byłoby stosowane tylko w skrajnych przypadkach, jeśli utrzymanie pozycji strony jest bardzo ważne.
źródło