php myAdmin mysql <? ?>

BROWSER-BASED * PHP5 SUPPORT * MYSQL 4.1 AND MYSQL 5.0 SUPPORT * OPEN SOURCE
PHP ve MySQL - En Yararlı Türkçe Kaynak
Kullanıcı Adınız : Kullanıcı Parolanız : Hatırla :    Kayıt   Şifremi Unuttum

Dinamik HTACCESS mod_rewrite PHP fonksiyonu [Çok Özel]

Eklenme Tarihi : 13.11.2008 | Okunma Sayısı : 245

Bildiğimiz gibi PHP htaccess ile seo yazarken en büyük problemimiz htaccess'e sürekli RewriteRule eklemektir. 
Bunu düşündük ve yeni bir algoritma geliştirdik. pehepe.org farkıyla şimdi kodumuzu yayınlıyoruz

İşte sihirli kodlar :)

<b>htaccess.php</b>:
<div><b>Kod</b></div><div id="code"><code><span style="color: #000000">

<?

/////////////////////////////////////////////////////////////////////////////////////
define('HTACCESS',1); //HTAAccess açık
define('HTACCESS_QS_KEY_AYRAC','.'); //index/~"adi.soyadi"/fatih-akin.htm
define('HTACCESS_QS_VAL_AYRAC','-'); //index/~adi.soyadi/"fatih-akin".htm
define('HTACCESS_QS_UZANTI','html'); //index/~adi.soyadi/fatih-akin."htm"
/////////////////////////////////////////////////////////////////////////////////FKA/

function HTAString($arr,$uzanti=HTACCESS_QS_UZANTI) {
    
$qs='';
    foreach(
$arr as $d=>$v) {
    
$qsa.=urlencode($d).HTACCESS_QS_KEY_AYRAC;
    }
    
$qsa trim($qsa,HTACCESS_QS_KEY_AYRAC);
    
    foreach(
$arr as $d=>$v) {
    
$qsb.=urlencode($v).HTACCESS_QS_VAL_AYRAC;
    }
    
$qsb trim($qsb,HTACCESS_QS_VAL_AYRAC);

    return 
$qsa."/".$qsb.".".$uzanti;
}

function 
hta2qs($htqs) {
    
$qs explode("/",$htqs);
    
$keyler explode(HTACCESS_QS_KEY_AYRAC,$qs[0]);
    
$degler explode(HTACCESS_QS_VAL_AYRAC,$qs[1]);
    if(
count($keyler)!=count($degler)) {
    
$fark abs(count($keyler)-count($degler));
    if(
count($keyler)<count($degler)) {
    for(
$i=0;$i<$fark;$i++) {
    
array_push(&$keyler,"");
    }
    }
    else if(
count($keyler)>count($degler)) {
    for(
$i=0;$i<$fark;$i++) {
    
array_push(&$degler,"");
    }
    }
    }
    
$sonarray array_combine($keyler$degler);
    foreach(
$sonarray as $k=>$v) {
    
$_GET[$k]=$v;
    }
    unset(
$_GET['HTAQS']);
    unset(
$_GET['']);
    return array(
$sonarray);
}

function 
href($str) {
    
$orstr $str;
    
$parca explode("?",$str);
    
$dosya rtrim($parca[0],".php");
    
$qs $parca[1];
    
$qs explode("&",$qs);
    
$keyler = array();
    
$valler = array();
    for(
$i=0;$i<count($qs);$i++) {
    
$keyval explode("=",$qs[$i]);
    
$key $keyval[0];
    
$deger $keyval[1];
    
array_push(&$keyler,$key);
    
array_push(&$valler,$deger);
    }
    if(
HTACCESS==1) {
    return
"http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/".$dosya."/~".HTAString(array_combine($keyler,$valler));

    }
    else {
    return 
"http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/".$orstr;
    }
}

hta2qs($_GET['HTAQS']); //Hangi değer
?>
</span>
</code></div>

<b>.htaccess:</b><div><b>Kod</b></div><div id="code"><code><span style="color:
#000000">

<Files ~ "^.(htaccess|htpasswd)$">
deny from all
</Files>

Options +Indexes +FollowSymLinks

RewriteEngine On
RewriteRule ^(.*)\/\~(.*).htm$ $1.php?HTAQS=$2 [L,NC]
RewriteRule ^(.*)\/\~(.*).html$ $1.php?HTAQS=$2 [L,NC]
RewriteRule ^(.*)\/\~(.*).xhtml$ $1.php?HTAQS=$2 [L,NC]
RewriteRule ^(.*)\/\~(.*).shtml$ $1.php?HTAQS=$2 [L,NC]
RewriteRule ^(.*)\/\~(.*).asp$ $1.php?HTAQS=$2 [L,NC]
RewriteRule ^(.*)\/\~(.*).aspx$ $1.php?HTAQS=$2 [L,NC]

DirectoryIndex index.php index.html default.html default.php home.php   
order deny,allow
</span>
</code></div>

ya da htaccess dosyasına eklemeniz gereken rewriteRule kodları:

Sadece bu kodları eklediğiniz takdirde, tüm linkleriniz modifiye olur.
<div><b>Kod</b></div><div id="code"><code><span style="color: #000000">

RewriteRule ^(.*)\/\~(.*).htm$ $1.php?HTAQS=$2 [L,NC]
RewriteRule ^(.*)\/\~(.*).html$ $1.php?HTAQS=$2 [L,NC]
RewriteRule ^(.*)\/\~(.*).xhtml$ $1.php?HTAQS=$2 [L,NC]
RewriteRule ^(.*)\/\~(.*).shtml$ $1.php?HTAQS=$2 [L,NC]
RewriteRule ^(.*)\/\~(.*).asp$ $1.php?HTAQS=$2 [L,NC]
RewriteRule ^(.*)\/\~(.*).aspx$ $1.php?HTAQS=$2 [L,NC]</span>
</code></div>

şimdi kullanımına geçelim:

<div><b>Kod</b></div><div id="code"><code><span style="color: #000000">

<?

include("htaccess.php");

print_r($_GET); //işte kanıt:)

?>

<a href="<?=href('index.php?kategori=oyunlar')?>">index.php?kategori=oyunlar</a>

</span>
</code></div>

Görüldüğü gibi linkimizi orjinal haliyle yazdık. fakat tıkladığımızda adres çubuğunda görülecek olan adres:

<div><b>Kod</b></div><div id="code"><code><span style="color: #000000">

index/~kategori/oyunlar.html
</span>
</code></div>

çeviri şeklini daha iyi anlamanız için:

<div><b>Kod</b></div><div id="code"><code><span style="color: #000000">

uyeler.php?uyeID=12345 => uyeler/~uyeID/12345.html

sayfa.php?Kategori=Fikralar => sayfa/~Kategori/Fikralar.html

ara.php?Nerde=Google.com&Sozcuk=PHP => ara/~Nerde.Sozcuk/Google.com-PHP.html

kategoriler.php?ID=1243 => kategoriler/~ID/1243.html


</span>
</code></div>

//FKA
Hepsini Görüntüle...

php mysql php oracle ajax apache xml cozumleri w3c xhtml w3c css JavaScript Object Notation