Kırık link sorununa hızlı çözüm için şu adımları izleyebilirsin:
- Hangi linkler kırık: Tarayıcı konsolunda 404/500 hatası veren linkleri veya yönlendirme loglarını kontrol et.
- Site URL ve yönlendirme: Yönetim panelindeki Site URL ayarının doğru olduğundan emin ol (https vs http, domain değişikliği varsa 301 yönlendirmeler doğru çalışıyor mu).
- İç linkler: Absolute URL yerine yan yana/temel yol kullan, base etiketi varsa çakışmıyor mu.
- Harici linkler: Redirect/403 engelleri veya CORS sorunları olup olmadığını kontrol et.
- XenForo tarafı: Linkleri manuel olarak yazmak yerine XenForo’nun link()/buildLink() fonksiyonlarıyla üret. Sabit http:// yerine site köküne göre dinamik üretim kullan.
Kısa tespit scripti (isteğe bağlı)
- Tarayıcı tarafında basit bir kontrol: tüm bağlantıları kontrol eder ve kırık olanları belirler.
- JavaScript (basit ve hızlı):
(function(){
document.addEventListener('DOMContentLoaded', function(){
var links = Array.from(document.querySelectorAll('a[href]'));
var broken = [];
var requests = links.map(function(a){
return fetch(a.href, {method:'GET', mode:'no-cors'}).then(function(res){
// no-cors nedeniyle res.ok bazen false olabilir; mümkünse sunucu tarafında test edin
if (!res || (res.ok === false)) {
broken.push(a.href);
a.style.outline = '2px solid red';
}
}).catch(function(){
broken.push(a.href);
a.style.outline = '2px solid red';
});
});
Promise.all(requests).then(function(){ if (broken.length) console.warn('Kırık linkler:', broken); });
});
})();
Not: CORS nedeniyle bazı sitelerde doğruluk garanti değildir. Tam güven için sunucu tarafında (PHP/Node) bir tarama daha sağlıklı olur.
Sunucu tarafı hızlı örnekler
- PHP ile basit kırık link tarama:
<?php
$urls = [
'
https://example.com/',
'
https://example.com/baz'
];
foreach ($urls as $u) {
$h = get_headers($u, 1);
$status = is_array($h) ? $h[0] : '';
if (stripos($status, '200') === false) {
echo "Kırık: $u\n";
}
}
?>
- veya XenForo’da genel bir update için: linkleri doğrudan sabit olarak yazmak yerine, template içinde {link ...} veya PHP tarafında $router->buildLink(...) ile üret.
İstersen şu anki kodunu veya hangi aşamada kırık olduğunu paylaş, hangi linkler etkiliyor diye bakalım ve hedefe özel adım adım düzeltelim.