API entegrasyonu
no404'ü sitenize bağlamak tek bir kod parçası kadar basit. Bir ziyaretçi 404'e düştüğünde API'yi çağırır, en uygun URL'yi alır ve oraya yönlendirirsiniz.
Hızlı başlangıç
Aşağıdaki kodu sitenizin 404 sayfasına ekleyin. SENIN_API_ANAHTARIN yerine panelden aldığınız API anahtarını yazın.
<!-- no404 — 404 sayfanıza ekleyin -->
<script>
(function () {
var p = location.pathname + location.search;
fetch("https://no404.tr/api/v1/resolve/SENIN_API_ANAHTARIN?path=" + encodeURIComponent(p))
.then(function (r) { return r.json(); })
.then(function (d) { if (d && d.redirect) location.replace(d.redirect); })
.catch(function () {});
})();
</script>Endpoint referansı
Tek bir endpoint; hem GET hem POST destekler.
Parametreler
| apiKey | yol (path) | Sitenizin API anahtarı (zorunlu). |
| path | query / gövde | 404 dönen yol, örn. /eksik-sayfa (zorunlu). |
GET örneği
curl "https://no404.tr/api/v1/resolve/SENIN_API_ANAHTARIN?path=/14-gram-altin-yuzuk-102" \
-H "Origin: https://siteniz.com"POST örneği
curl -X POST "https://no404.tr/api/v1/resolve/SENIN_API_ANAHTARIN" \
-H "Content-Type: application/json" \
-H "Origin: https://siteniz.com" \
-d '{"path":"/14-gram-altin-yuzuk-102"}'Yanıt & durum kodları
Başarılı yanıt JSON döner:
{
"success": true,
"found": true,
"redirect": "https://siteniz.com/14-gram-altin-yuzuk",
"score": 0.92,
"source": "CATALOG"
}Yanıt alanları
| found | boolean | Kesin eşleşme bulundu mu (yedek yönlendirmede false olabilir). |
| redirect | string | null | Yönlendirilecek tam URL. Dolu ise ziyaretçiyi buraya gönderin (yedek dahil). |
| score | number | Eşleşme skoru 0–1 (1 = manuel yönlendirme). |
| source | enum | REDIRECT (manuel) · CATALOG (otomatik) · FALLBACK (eşik altı yedek adres) · NONE (yok). |
Durum kodları
| 200 | Başarılı (found true/false olabilir). |
| 403 | Origin izinli değil ya da izleme duraklatıldı. |
| 404 | Geçersiz API anahtarı. |
| 422 | Geçersiz veya eksik 'path'. |
| 429 | Rate limit aşıldı (çok fazla istek). |
Origin kilidi & güvenlik
API anahtarınız origin kilidi ile korunur. İstekler yalnızca panelde tanımladığınız izinli origin'lerden kabul edilir. Anahtarınız sızsa bile başka bir alan adından gelen tarayıcı isteği 403 ile reddedilir ve CORS yanıtı verilmez.
- Sitenizi eklediğinizde alan adınız otomatik izinli origin olarak eklenir (www + köksüz).
- Ek alan adlarını panelden ekleyebilirsiniz.
- Anahtar sızıntısında panelden anahtarı yenileyin — eski anında geçersiz olur.
Entegrasyon rehberleri
Next.js (App Router)
app/not-found.tsx içine:
"use client";
import { useEffect } from "react";
export default function NotFound() {
useEffect(() => {
const p = location.pathname + location.search;
fetch(`https://no404.tr/api/v1/resolve/SENIN_API_ANAHTARIN?path=${encodeURIComponent(p)}`)
.then((r) => r.json())
.then((d) => { if (d.redirect) location.replace(d.redirect); })
.catch(() => {});
}, []);
return <p>Sayfa bulunamadı, yönlendiriliyorsunuz…</p>;
}WordPress
Temanızın 404.php dosyasına hızlı başlangıç snippet'ini ekleyin (genelde get_header() sonrası).
Sunucu tarafı (herhangi bir dil)
404 üreten yerde POST/GET çağırın, dönen redirect varsa HTTP 301/302 ile yönlendirin.
// Node.js örneği
const res = await fetch(
"https://no404.tr/api/v1/resolve/SENIN_API_ANAHTARIN?path=" + encodeURIComponent(path),
{ headers: { Origin: "https://siteniz.com" } }
);
const data = await res.json();
if (data.redirect) {
// örn. Express: res.redirect(301, data.redirect)
}En iyi pratikler
- Snippet'i erken yükleyin — 404 sayfasının başında, ziyaretçi beklemeden yönlensin.
- Sitemap'inizi bağlayın — eşleştirme kalitesi kataloğun güncelliğine bağlıdır.
- Eşik (threshold) ayarı — çok agresif yönlendirme istemiyorsanız eşiği yükseltin (önerilen 0.3).
- Kritik yollar için manuel yönlendirme tanımlayın; otomatiği ezer.
- Rate limit: anahtar+IP başına dakikada 120 istek. Normal trafikte sorun olmaz.