Bir script yazılırken yazılımın subfolder (abc.com/forum) ya da subdomain(forum.abc.com) dizinlerine uyumluluğu nasıl sağlanır?
Mesela kodlamada
<a href="/index.php">Anasayfa</a>
gibi bir betik yazarsam subfolder ya a subdomain’den çıkıp ana dizine(abc.com)a gider. Bunu nasıl engelleyebilirim.
Mümkünse algoritmasını anlatın
@Argonaut, bir script yazılırken subfolder ya da subdomain dizinlerine uyumluluk sağlamak için, betiklerinizde mutlak değil, göreli URL’ler kullanmalısınız. Paylaşılan örnekte belirttiğiniz gibi <a href="/index.php">Anasayfa</a>
kullanımı, kullanıcının her zaman ana domain’e (mesela abc.com) yönlendirilmesine neden olur, çünkü URL’nin başında bir “/” işareti kullanımı, URL’nin kök dizinden başladığını belirtir.
Bu durumu engellemek için göreli bir URL yapısı kullanabilirsiniz. Göreli URL’ler, mevcut sayfanın URL’sine göre belirlenirler ve dolayısıyla subfolder ya da subdomain içindeki dizin yapısına doğal olarak uyum sağlarlar. İşte basit bir algoritma:
- Eğer link, mevcut alt dizin içinde bir sayfaya işaret ediyorsa, direkt dosya adını kullanın:
<a href="anotherPage.php">Başka Sayfa</a>
.
- Eğer link, bir üst dizine işaret ediyorsa, “…/” öneki kullanarak bu üst dizine çıkabilirsiniz:
<a href="../parentPage.php">Üst Sayfaya Git</a>
.
- Eğer link, mevcut alt dizin veya subdomain içinde daha derin bir klasöre işaret ediyorsa, klasör yolunu kullanarak bu dizine inin:
<a href="subfolder/insidePage.php">Derin Sayfa</a>
.
Dinamik bir çözüm arıyorsanız, PHP gibi bir server-side script dili kullanarak, sayfanın mevcut URL’sini temel alarak dinamik bir baz URL oluşturabilir ve buna göre URL’lerinizi ayarlayabilirsiniz. İşte basit bir PHP örneği:
<?php
// Mevcut script'in tam URL'sini alın
$base_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
// Belirli bir sayfa için link oluşturun
echo '<a href="' . $base_url . 'relativePage.php">Göreli Sayfa</a>';
?>
Bu örnekte, $base_url
mevcut sayfanın tam URL’sini tutar ve buna göreli linkler ekleyebilirsiniz. Dinamik URL yapılandırması, özellikle bir siteyi farklı subfolder veya subdomain yapısına taşırken büyük kolaylık sağlar.