PHP nasıl mod_rewrite kullanan bir tek giriş noktası varolmayan URL'leri tedavi

3 Cevap php

PHP bir web sitesi geliştirme ve ben index.php tek bir giriş noktası uygulamak için mod-rewrite kullanıyorum. Oradan dinamik (DB ya da diğer yollarla olabilir) her bir URL için içerik oluşturmak için bir gönderme tablo kullanıyorum.

Ben sevk tabloda olmayan URL'leri tedavisi için doğru yolu nedir emin değilim. Ben site köküne linkleri ve bazı olası tahminler ve uygun bir 404 kodu ile bir hata sayfası dönmek istiyorum.

Eminim çoğunuz böyle bir şey yapmış değilim ve bunu yapmak için nasıl açıktır ama google arama önünde alakalı değil, sadece sonuçlar getiriyor.

Herhangi bir çözüm için şimdiden teşekkür ederiz ya da bir çözüm bağlamak.

Bugüne kadar çözüm:

Ben kullanıyorum

header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");

hemen önce hata sayfasının içeriğini ekleyerek.

3 Cevap

Sürece bir well-formed status line HTTP Spec tanımına karşılık gelir yapıyoruz ve sen ne kadar using 404 correctly. Bu mükemmel kabul edilebilir. You're doing it right!

PHP kullanarak tarayıcıya bir 404 kodu göndermek istiyorsanız, size başlığına yazmak zorunda:

header("HTTP/1.0 404 Not Found");

görünüşe göre.

Tahmin üreten gelince, ben size URL sütununa bir LIKE sorgu yaparım tahmin ediyorum.

Ben ne yapıyorsun muhtemelen genel olarak, iyi çalışacağını düşünüyorum.

Sayfa koymak ne gelince, web üzerinde birkaç kaynak var. Akla gelen biri hemen bir one that Opera put up recently. Bu örnek dili olarak Python kullanır, ama oldukça temel şeyler var.