Bence direk linklerinizi değiştirmeyin. Benim bir süredir kafamda olan ama bi türlü uygulamaya zaman bulamadığım bi düşünce var.
Farklı PHP dosyaları kullanıyorsanız (A sayfası için a.php, B sayfası için B.php gibi), her dosyaya include veya require metoduyla aldığınız PHP dosyasına; her şeyi index.php'den görüntülüyorsanız (A sayfası için index.php?case=a gibi), index.php'nin ilk satırlarında makul bir yere yönlendirme koyun. Örnek olarak:
Farklı dosyalar kullananlar için:
$siteurl = 'http://site.com/'; // Alt klasör olsa bile sadece .com'a kadar yazın
$siteurl2 = 'http://site.com/forum'; // Alt klasörlerinizi de belirtin.
$url = $siteurl . $_SERVER['REQUEST_URI'];
$adres = $siteurl2;
if($settings['sef_redirect'] == '1' && similar_text($url, '.html') == 0) // Ayarlar modülünüz varsa böyle bir şey yapabilirsiniz
{
preg_match('/(.+)\.php/si', $adres, $dosya);
$dosya == $dosya[0];
$adres = $dosya . '.html' . !empty($_GET) ? '?' : '';
foreach($_GET as $g => $v)
{
$adres .= $g . '=' . $v . '&';
}
$adres = substr($adres, 0, -1);
}
if(!empty($adres) && $adres != $siteurl2)
header('location: ' . $adres);Tek dosya kullananlar için:
$siteurl = 'http://site.com/'; // Alt klasör olsa bile sadece .com'a kadar yazın
$siteurl2 = 'http://site.com/forum/'; // Alt klasörlerinizi de belirtin.
$url = $siteurl . $_SERVER['REQUEST_URI'];
$adres = $siteurl2;
if($settings['sef_redirect'] == '1' && similar_text($url, '.html') == 0 && $_GET['case'] != '') // Ayarlar modülünüz yoksa $settings['sef_redirect'] değişkenini silebilir veya istediğiniz gibi değiştirebilirsiniz. // $_GET['case'] değişkenini sisteminize göre değiştirebilirsiniz
{
preg_match('/index\.php\?case=(.+)/si', $adres, $dosya);
$dosya == $dosya[0];
$adres .= $dosya . '.html' . !empty($_GET) ? '?' : '';
foreach($_GET as $g => $v)
{
$adres .= $g . '=' . $v . '&';
}
$adres = substr($adres, 0, -1);
}
elseif($settings['sef_redirect'] == '1' && similar_text($url, '.html') == 0 && $_GET['case'] == '') // Üstteki IF'ten tek farkı $_GET['case'] değişkenini boş istiyoruz bu sefer.
$adres .= 'index.html';
if(!empty($adres) && $adres != $siteurl2)
header('location: ' . $adres);