HTML'yi 301 yönlendirme sayfasından bir dokümana yerleştirmek, gerçek 301 yönlendirmesiyle aynı işlevi görür mü?


15

Web hata ayıklayıcısında, 301 yönlendirme sayfasının html'si şu şekilde görünür:

<!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>

Sunucu desteği olmadan html sayfalarını yönlendirmek zorundayım. Html sayfalarını yukarıdaki kodla değiştirirsem, 301 yönlendirmelerini apache'de .htaccess'e yazmakla aynı şekilde çalışır mı? Bunu Google'da aradım, ancak 301 yönlendirmesinden söz eden siteler html sayfalarını yönlendirmek için bu seçeneği kapsamıyordu.

Yanıtlar:


18

İdeal olarak 301 HTTP yanıt durum kodu gönderirsiniz. Bunu yapamazsanız hemen bir meta yenileme de çalışır ve arama motoruna bağlı olarak 301 veya 302 yönlendirmesi olarak sayılır .

<meta http-equiv="refresh" content="0;url=http://example.com/new.html">

30x yönlendirmesi olarak kabul edilmek için yenileme hızı sıfır olmalıdır .


Teşekkürler, bu makale süreci gerçekten iyi ifade ediyor. Yukarıdaki HTML örneğimin içinde 0 gecikme meta yenileme = zavallı adamın 301.
JMC

10

Hayır, HTML'yi örneğinizle değiştirmek, aradığınız efekti elde etmez. Apache onunla birlikte bir '200' durum kodu göndereceğinden, bu sayfayı kullanıcıya gösterecektir. Kullanıcılar sayfayı bulmak için bağlantıyı tıklayabilecek, ancak otomatik olarak gerçekleşmeyecek ve örümcekler kaynağın kalıcı bir yeniden yönlendirmesini gerçekleştirmek istediğinizi bilmeyecek.

.Htaccess veya Apache conf dosyalarınızda uygun bir Yönlendirme veya _mod_rewrite_ yönergesi kullanmanız gerekir .

Alternatif olarak, aslında PHP veya benzeri bir şey kullanıyorsanız, dönüş kodunu 301 olarak ayarlayabilirsiniz, bir Konum yanıtı başlığı girin ve sayfa tabanlı çözümünüz işe yarayacaktır. PHP'de şöyle görünecektir:

<?php
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: http://www.new-url.com" );

+1 200 durum kodu hakkında iyi puanlar. Bunu düşünmedim. Ne yazık ki bu bir IIS sunucusudur ve ftp'den daha derin erişime sahip değilim. Sayfalar .html olduğundan asp yönlendirmesi işlenmez.
JMC

Bu durumda John Conde'un cevabı en iyisidir - meta yenileme eşdeğerini unutmuştum.
Hissohathair

3

Hissohathair ile hemfikir olun, çünkü yaklaşımınız aslında yeniden yönlendirmeyecektir. Kullanıcılar bağlantıyı tıklamayı bilebilir, ancak orijinal sayfa yine de normal bir '200' durum kodu döndürür ve arama sonuçlarında görünmeye devam eder (muhtemelen istediğiniz gibi değildir).

Sayfa sıralamasını korumak için 301 durum kodu son derece önemlidir. Meta yenileme etiketleri eklemek de iyi bir seçenektir ve çoğu durumda (John'un yanıtına göre) yardımcı olabilir, ancak arama motorlarının gelecekte 301 yönlendirmesi olarak kabul edeceği garanti edilemez. 301 durum kodunun gönderildiğini garanti etmek için .htaccess (veya Apache conf dosyalarınıza) uygun yönlendirmeler eklemek en iyi seçenek olacaktır.

Düzenle:

=======================

IIS7 web sitesi için, IIS URL Yeniden Yazma modülü yüklü olduğu sürece, sitenin web.config dosyasında yönlendirme kuralları oluşturabilirsiniz. Bu kurallar .html dosyaları için de geçerlidir. Daha fazla bilgi burada:

http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module/

=======================

Web barındırıcınızın .htaccess / mod_rewrite özellikleri yoksa başka bir alternatif, kullandığınız web sunucusunu sunucu tarafı yönlendirmelerini ayarlayabileceğiniz yerde değiştirmek olabilir. Site düzgün bir şekilde taşındığı sürece, kullanıcılarınız için oldukça sorunsuz olmalıdır. Bu yaklaşım, yalnızca sayfa sıralamasını korumak son derece kritik olduğunda aşırı durumlar için geçerlidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.