Alan Adı Yönlendirme Kancaları
Gelen ziyaretçiyi ve postayı başka bir yere taşıyan sekiz kanca, artı bu iki türü satın alan ek hizmet çağrısı.
Genel Bakış
Yönlendirmenin iki türü vardır ve ikisi de aynı ek hizmetin arkasındadır: adrese geleni taşıyan yönlendirme ve postayı taşıyan yönlendirme.
Aralarında bir sayı farkı var. Adres yönlendirmesi alan adı başına tektir, posta yönlendirmesi ise bir listedir. Bu fark kancaların parametrelerine de yansır: biri tek bir kayıt taşır, diğeri kaynak ve hedef çiftleri.
Referans
Adres yönlendirmesini durdurma
Yönlendirme sağlayıcıda kurulmadan ya da kaldırılmadan önce çalışır.
protocol (http/https), target (şemasız hedef, sondaki eğik çizgi kırpılmış), method (301/302). Kaldırma çağrısında boş dizi gelir.save ya da cancel.Hook::add('gate:domain.url_forwarding_change', 10,
function ($service, $fwd, $verb) {
if ($verb === 'cancel') return null; // kaldirmaya karisma
// Kalici yonlendirme tarayicida saklanir; guvensiz hedefe izin verme.
if (($fwd['protocol'] ?? '') !== 'https' && (int) ($fwd['method'] ?? 0) === 301)
return 'Kalici yonlendirme yalniz guvenli adrese yapilir.';
return null;
});Adres yönlendirmesini izleme
Yönlendirme sağlayıcıda kurulduktan ya da kaldırıldıktan sonra çalışır.
Hook::add('action:domain.url_forwarding_changed', 10,
function ($service, $fwd, $verb) {
Audit::note('forwarding', $service['name'] ?? '',
$verb === 'cancel' ? 'kaldirildi' : ($fwd['target'] ?? ''));
});Okunan yönlendirmeyi değiştirme
Sağlayıcıdan okunan yönlendirme normalleştirildikten sonra, ekrana gitmeden önce çalışır.
active, protocol, method, domain (şemasız hedef), url (tam adres). active ekranın "yönlendirme var mı" durumunu, url ise hedef kutusunun ön dolumunu belirler.Hook::add('filter:domain.url_forwarding', 10, function (&$forwarding, $service) {
// active ile url birlikte tutarli olmali: biri dolu digeri bos kalmasin.
if (empty($forwarding['url'])) $forwarding['active'] = false;
});Posta yönlendirmesini durdurma
Posta yönlendirme kuralı sağlayıcıda eklenmeden ya da silinmeden önce çalışır.
info demek [email protected] demektir.create ya da delete.Hook::add('gate:domain.email_forward_save', 10,
function ($service, $prefix, $target, $verb) {
if ($verb === 'delete') return null;
// Yonetim kutularini disari yonlendirmek hesap devralmaya kapi acar.
if (in_array(strtolower($prefix), ['admin', 'postmaster', 'hostmaster'], true))
return 'Bu yerel kisim yonlendirilemez.';
return null;
});Posta yönlendirmesini izleme
Kural sağlayıcıda işlendikten sonra çalışır.
Hook::add('action:domain.email_forward_saved', 10,
function ($service, $prefix, $target, $verb) {
MailAudit::rule($verb, $prefix . '@' . ($service['name'] ?? ''), $target);
});Yönlendirme listesini değiştirme
Sağlayıcıdan okunan kurallar normalleştirildikten sonra çalışır.
identity, prefix, source (prefix@alanadı) ve target taşır. Silme çağrısı bu üç alanı geri gönderir; düşürmeyin.Hook::add('filter:domain.email_forwards', 10, function (&$forwards, $service) {
// identity/prefix/target ucunu de KORU: silme bunlarla hedefler.
usort($forwards, fn ($a, $b) => strcmp($a['prefix'] ?? '', $b['prefix'] ?? ''));
});Ek hizmet satın almayı durdurma
Müşteri ek hizmeti satın almadan, hiçbir kayıt oluşmadan çalışır.
dns-manage, whois-privacy ya da forwarding. Anahtar tireli yazılır; alt çizgi eşleşmez.Hook::add('gate:domain.addon_purchase', 10, function ($service, $addonKey) {
// Suresi dolmak uzere olan ada yillik ek hizmet satmak dogru degil.
if (Acme::daysLeft($service) < 30)
return 'Alan adinin suresi dolmak uzere; once yenileyin.';
return null;
});Ek hizmet siparişini izleme
Sipariş kurulduktan sonra çalışır. Ek hizmet bu noktada beklemededir: faturası ödenene kadar etkinleşmez.
invoice_id (kesilen ödenmemiş fatura), addon_id (bekleyen kayıt), addon_name.Hook::add('action:domain.addon_ordered', 10,
function ($service, $addonKey, $context) {
// Hizmet HENUZ acik degil: faturasi odenince etkinlesir.
Crm::pendingAddon((int) ($context['invoice_id'] ?? 0), $addonKey);
});Tuzaklar
Adres yönlendirmesi kaldırılırken kanca ikinci parametreyi boş dizi olarak verir. Eski hedefi oradan okumaya çalışan bir dinleyici boş bulur ve sessizce yanlış iş yapar. Neyin kaldırıldığını bilmeniz gerekiyorsa kapıda okuyup saklayın.
Kaynak parametresi yalnız yerel kısımdır, tam adres değil. Alan adını kendiniz eklemeniz gerekir ve bunu yaparken hizmet kaydındaki addan alın. Tam adres bekleyen bir dinleyici, kayıt eşleştirmesinde hiçbir şey bulamaz.
Ek hizmet siparişi kesildiğinde kayıt beklemede, faturası ise ödenmemiş durumdadır. Erişimi burada açmaya kalkmak, parası ödenmemiş bir hizmeti teslim etmek olur. Gerçek açılış ödeme tarafındaki kancalarda olur.
Anahtarlar dns-manage, whois-privacy, forwarding biçimindedir. Alt çizgiyle yazmak sessizce eşleşmez: dinleyiciniz çalışır ama koşulunuz hiçbir zaman tutmaz.
İlgili Makaleler
- Alan Adı DNS Kancaları
- Fatura ve Ödeme Kancaları
- Alan Adı Kancaları
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.