PHP - Özel hata işleme.

3 Cevap php

I have a website which uses the custom 404 error handling in PHP/Apache to display specific pages.
e.g. http://metachat.org/recent

Ben bu yapmanın kötü bir yoldur bir his var, ama ben miras kod ...

Sayfa en tarayıcılarda düzgün görüntüler, ancak ben AVG Anti-Virus sayfasını kaçırma ve dışına 404 sayfaya yönlendirmek bir durum alıyorum.

Ben bir başlık (Durum: 200 OK) zorlamak için denedim PHP başlık komutunu kullanarak, ama ben sayfanın kıvırmak-I yaparsanız, ben şu olsun ...

HTTP/1.1 404 Not Found
Date: Fri, 03 Oct 2008 11:43:01 GMT
Server: Apache/2.0.54 (Debian GNU/Linux) DAV/2 SVN/1.1.4 PHP/4.3.10-16 mod_ssl/2
.0.54 OpenSSL/0.9.7e
X-Powered-By: PHP/4.3.10-16
Status: 200 OK
Content-Type: text/html

I guess that first line is the line AVG traps for its forced redirect. Without rewriting the software to use Mod_rewrite (which I don't really understand), how can I (in PHP) stop the "HTTP:/1/1 404 Not Found" line being sent in the headers when displaying this page?

Teşekkürler.

3 Cevap

URL yeniden () mod_rewrite kullanarak veya eksik sayfaları oluşturma dışında hiçbir yolu yok. Ne oluyor müşteri yok bir sayfa isteğinde olmasıdır. Apache 404 hataları üzerine özel bir sayfa hizmet vermek üzere yapılandırılmış, ancak yine de AVG bu tuzaklar daha sonra, 404 durum kodu gönderir.

Yani, sizin gibi bir şey olabilir:

RewriteEngine On
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule (.*) index.php?missing_content=$1

Bu missing_content sorgu dizesi parametresi URL yolu ile index.php yoktur (ve dolayısıyla 404 vermek istiyorum) her şeyi yeniden yazmak olacak

Ne olsun bir Page Not Found hata ise, don't Bu Durum 200 OK göndereceğim. Lütfen.

Bu insanlar ne sebeple olursa olsun yapılacak en can sıkıcı "hileler" biri. Sayfa kullanıcı istekleri yoksa, yanı sıra onun tarayıcı, ona bu söyle. Ve arama motorları, aksi takdirde / taramasını bu gerçek cevap düşünme özel hata sayfası önbelleğe alır.

Birisi yerine 404 başka bir şey görüntüler yüklü bazı yazılım varsa, bu onun kendi sorun ve tarayıcı servis yalan yapma mücadele etmeye çalışmayın :)

Bu içerik oldukça küçük ise bazı tarayıcılar 404 sayfalarının içeriğini görüntülemek yok. Büyük sayfa içerik varsa bunu göstermek yapmak. Bu kural tarayıcınıza göre değişir. 404 sayfa daha fazla içerik ekleyerek deneyin ve yardımcı olmadığını görmek.