301 Redirect ÖNCE işlem veri?

3 Cevap php

Yani, (dünyanın ihtiyacı sadece ne, ben biliyorum) bir PHP bağlantı kısaltıcı üzerinde çalışıyoruz. Temelde gitmek gerekiyor ve böylece gibi, tarayıcıyı yeniden yönlendirmek için 301 Başlığını gönderir nerede sayfa yük, php belirler ...

Header( "HTTP/1.1 301 Moved Permanently" );
header("Location: http://newsite.com";

Şimdi, benim yönlendirmeleri bazı izleme ekleyebilir ve yönlendirme gerçekleşmeden önce bir MySQL tabloya bazı özel analitik veri eklemek çalışıyorum. Ben bir yönlendirme türünü belirtmek ve sadece kullanmak istemiyorsanız mükemmel çalışıyor:

header("Location: http://newsite.com";

Ama, tabii ki kısa sürede 301 başlığında eklemek gibi, başka bir şey işlenmiş olur. Aslında, ilk istek üzerine, bu MySQL veri gönderir, ancak herhangi bir sonraki istekleri veritabanı ile hiçbir iletişim yok.

Ben onlar gelecek istekler şey ayrıştırmak için hiçbir nedeni sensin karar 301 görmüş kez, bir tarayıcı önbelleğe alma sorunu olduğunu varsayalım. Bunu aşmanın bir yolu varsa Ama, herkes biliyor?

Ben gerçekten (Eğer varsayılan bir 404 gönderir belirtmek yoksa ben inanıyorum?) SEO amaçlar için bir 301 olarak tutmak istiyorum.

Ben MySQL işi yapacak sayfaya dosya prepend. Htaccess kullanarak düşündünüz, ama 301 ile, bu sadece de göz ardı almak değil mi?

Her neyse, ben yönlendirmenin farklı bir türünü kullanarak başka herhangi bir çözüm varsa emin değilim, ama henüz pes etmeye hazırım. Yani, herhangi bir öneriniz çok takdir. Teşekkürler!

3 Cevap

İlk başlık deyimi önce aşağıdaki eklemeyi deneyin; Bu tipik sayfaları önbelleğe engellemek gerekir, ama yönlendirmeler için çalışıyor emin değilim:

header("Cache-Control: no-cache, must-revalidate");
header("Expires: Thu, 1 Jan 1970 00:00:00 GMT");

Açıklama 301 kodunun açıklaması: Sen, özellikle yeni sayfa kalıcı yeni bir konumdur tarayıcı söylüyorsun "Permanently taşındı", ve bu nedenle şimdiye kadar eski ziyaret etmek için hiçbir neden yok URL yeniden.

Bunun yerine, 303 See Other durumunu kullanabilirsiniz. (Başka bir ziyaretçi yönlendirir olarak) bu kabaca aynı anlama sahiptir, ancak önbelleğe alınmayacaktır "olmamalıdır".

Siz geçici bir yönlendirme ve önbelleğe olmayacak varsayılan 302 yönlendirmesi, kullanmalısınız.

301 kalıcı yönlendirme ve çoğu tarayıcı önbelleğe olacaktır.