Htaccess Kullanarak Dosya Uzantılarını Dizin Olarak Okutmak..

Müslüm:
Merhaba lem Coşkun naber?

Coşkun:
İyi değilim abi, canım çok sıkkın ya..Ağlıyorum İşte :-(

Müslüm:
Neden lem neyin var? hayırdır..

Coşkun:
Yahu adamlar çıkarmış HtaccessSimsek Cakti mi neyse, adam gibi uzantımı dizin haline çeviremedim.. İnternette o kadar araştırdım adam gibi bir bilgi elde edemedim...Ağlıyorum İşte :-(

Müslüm:
Hadi canim, kendini parçalama bu tarz şeyler için yahu.

Coşkun:
Niye parçalamiyim abi, olmuyor işte, 5 saattir araştırıyorum ama adam gibi kaynak bulamadım..

Biraz not.. Coşkun sinirli bir şekilde bilgisayardan kalkar, ben gidiyorum hava alacam, belkide gelmem bugün bir daha der..

Fakat, Müslüm gülerek, gel bakiim gel, nedir sorunların sıkıntıların söyle bakalım.Dilime dokunmayin :-)
Ne yapmak istiyorsun bakalım sen bu Htaccess ile? Neyin uzantısını degiştireceksin? diye seslenir..

ve Coşkun koşa koşa bir iştahla tekrar bilgisayar başına oturur..

Coşkun:
Peki abi nerden başlayalım, açıklayıcı bir biçimde anlatırsan çok iyi olur.

Müslüm:
tamam, coşkuncum. Şimdi ne yapmak istediğini bana düzenli bir şekilde açıkla bakalım.. Ve ben açıklarken kafana takılanları mutlaka geçmeden sor.

Coşkun:
Abi, yapmak istediğim şu, biz müşterilerimize websitesi yapıyoruz bildiğin gibi, fakat uzantıları her insan görüyor, ama benim istediğim bu insanlar benim uzantımı görmesinler, veya PHPSimsek Cakti uzantılı ise, ben bunu .html .phtml veya .shtml olarak sunmak istiyorum. İstemiyorum abi görmelerini bu benim hakkım değil mi? Bu sitenin Webmaster'i ben değilmiyim? Bana öncelikle .PHP uzantıları .html veya .htm olarak nasıl görüntüleyecegimi anlat abi, Htaccess mi neymiş onunla yapılıyormuş..

Müslüm:
peki canim, Müslüm bir sigara alıp - yakar.. Eveett başlıyalım.. Coşkuncum, öncelikle yapmış olduğumuz sayfaların bulunduğu dizine, bir dosya açıp bu dosyanın adını .htaccess dosyası yaratıyoruz..

Açmış olduğumuz bu dosyanın içine aynen şu kodları giriyoruz.. (Tabii bu kod PHP ile kodlanan bir dosyanın yorumlanmasını sağlayacak. Yani eğer bir UnixSimsek Cakti sunucudaysak ve sunucumuz PHP destekliyorsa, yapmış olduğumuz dinamik sayfaları html sayfası olarak çalıştıramayız. Eğer bu PHP kodlarını PHP uzantılı dosyada değilde html dosyasında çalıştırmak istersek, bu durumda .htaccess devreye girer ve 1 satırlık bir kod ile, PHP kodlu dosyamızı sunucumuzda .html uzantılı dosya olarak okuturuz).

Coşkun:
Peki hangi kodları girecegiz abi?

Müslüm:
Acele etme canım, bekle.. sırayla yapalım. Şimdi localhost'umuzda bir klasore yaratalim ve içine, .htaccess adında dosya oluşturup hemen şu kodu girelim..

AttachDosya adı: .htaccess

AddType application/x-httpd-php .html 

Coşkun:
Sadece bu kodmu .PHP uzantılı php kodlarımızın olduğu dosyayı .html olarak yorumluyor..

Müslüm:
Evet aynen öyle fakat yapmış olduğumuz php dosyasının uzantısı .php olarak kalmayacak. Yoksa sunucumuz 404 hatası verir, ve .html uzantılı dosyayı bulamaz.

Coşkun:
Coşkun: Tamam abi, şimdi .htaccess adında dosya yaratıp içine aynen bu kodu yerleştirdim ve c:\inetpub\wwwroot\deneme\ adındaki açtığım klasorun içine kaydettim.

Müslüm:
Çok güzel şimdi, PHP kodlar ile yazdığımız .php uzantılı dosyamızı HTML sayfası olarak degiştirelim. Yada dur yeni bir HTML sayfası yaratalım ama PHP kodlarıyla..

AttachDosya adı: deneme.html

<?
// Değişkenleri tanımlıyoruz..
$adsoyad = "Müslüm   Kısıkses"; 
$yas = "25"; 
$cinsiyet = "Bilinmiyor";
$hobiler =   array("Türk filmi seyretmek","
Kedi beslemek","PHP öğrenmek","Gezmek","Tozmak","
Gulle Oynamak", "Uçurtma uçurmak", "Basketbol Oynamak",
"Ağaç kesmek");   // HTML olarak çıktısı.. echo "<strong>Ad Soyad :</strong> ".$adsoyad."<br />"; echo "<strong>Yaş :</strong> ".$yas."<br />"; echo "<strong>Cinsiyet: </strong> ".$cinsiyet."<br />";    for($i=0; $i<count($hobiler); $i++) // Burada Hobiler dizinini
sıralayalım.. (Yani Saydıralım) {   echo "<strong>Hobi. ".($i+1)." :</strong> ".$hobiler[$i]."<br />"; }   ?

deneme adlı klasorumuze deneme.html isimli bir HTML sayfası yaratıp içine PHP kodlarımızı yerleştirdikten sonra, Tarayıcımızı açıp adres çubuğuna, http://localhost/deneme/deneme.html yazıp istek gönderiyoruz..

Coşkun:
AA, <? ?> içindeki kodları .html uzantı olarak okuyor.. Müthiş abi istediğimde buydu öyleyse, ben haber.php?id=14 gibi gördüğüm uzantıları .php olmaktan çıkarabilirim. Onları bundan sonra, haber.html?id=14 olarak okuturum.. Görüyormusun abi 1 kod neler yapabiliyor? Peki ben sitelerde şöyle adresler görüyorum.. www.domain.com/aboutus/ www.domain.com/contact/ bu tarz, adresler var ve bu adreslerin içinde dinamik sayfalar var. Bu tarz URL ler nasıl oluşuyor abi? Bunuda ögrenirsem çok iyi olacak benim için.. Dilime dokunmayin :-)

Müslüm:
Onlar için önce kontrol etmemiz gereken şeyler var coşkuncum..

Coşkun:
Neleri kontrol ediyoruz abi?

Müslüm:
Öncelikle Apache httpd.conf dosyamızdaki Modülleri kontrol ediyoruz.. Eğer mod_rewriteSimsek Cakti modülümüz kapalıysa, onu aktif hale getiriyoruz..

#LoadModule rewrite_module modules/mod_rewrite.so (Önündeki diyez işaretini kaldırdığımızda açılmış olacaktır)

LoadModule rewrite_module modules/mod_rewrite.so

Conf dosyamızdaki İkinci kontrol etmemiz gereken kısım ise,

<Directory "C:/Program Files/Apache Group/Apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
		

Buradaki kodumuzda "AllowOverride None" olabilir. Eğer bu kodumuz None ise, yapmış olduğumuz işlem geçersiz olacaktır. .htaccess'e yazdığımız kodlar işleme girmeyecektir. Eğer bunlar gerektiği gibi düzenlendiyse, Şimdi rahatça .htaccess dosyamıza yeni bir kod ekleyebiliriz. Daha önce bulunan kodu silelim karışıklık olmasın. Ardından .htaccess dosyamızın içine aynen şu kodları girelim..

Biraz not.. Bu arada coşkun sessiz bir kedi gibi, Müslümün anlattıklarına odaklanmıştır..

AttachDosya adı: .htaccess

Options +FollowSymlinks
RewriteEngine On
RewriteRule ^index.*$ index.php   [NC] 
RewriteRule ^aboutus.* aboutus.php [NC] 
RewriteRule ^services.*   services.html [NC] 
		

Burada yapmamız gereken şey şu. Eğer klasorumuzde index.php aboutus.php ve services.html dosyaları mevcutsa, direk bunları teker teker tanımlıyoruz.. Eklemek istediğiniz başka dosyalar varsa, onlarıda aynı şekilde kodların alt kısmına yerleştiriyoruz.. Tamamdır şimdi .htaccess dosyamızıda ayarladıktan sonra, deneme klasorumuzdeki deneme.html dosyamızın adını, services.html olarak degiştirelim ardından, Dosyanın içinde bulunan PHP kodları yani;

AttachDosya adı: deneme.html

<?
// Değişkenleri tanımlıyoruz..
$adsoyad = "Müslüm   Kısıkses"; 
$yas = "25"; 
$cinsiyet = "Bilinmiyor";
$hobiler =   array("Türk filmi seyretmek","
Kedi beslemek","PHP öğrenmek","Gezmek","Tozmak","
Gulle Oynamak", "Uçurtma uçurmak", "Basketbol Oynamak",
"Ağaç kesmek");   // HTML olarak çıktısı.. echo "<strong>Ad Soyad :</strong> ".$adsoyad."<br />"; echo "<strong>Yaş :</strong> ".$yas."<br />"; echo "<strong>Cinsiyet: </strong> ".$cinsiyet."<br />";    for($i=0; $i<count($hobiler); $i++) // Burada Hobiler dizinini
sıralayalım.. (Yani Saydıralım) {   echo "<strong>Hobi. ".($i+1)." :</strong> ".$hobiler[$i]."<br />"; }   ?

Aynı şekilde alıp aboutus.php adında bir dosya yaratıp içine bu kodları yerleştirelim.. deneme klasorumuzun içinde 1 adet Html sayfası 1 adet PHP sayfası mevcut. Tarayıcımızı açıp http://localhost/deneme/services/ yazıp enterlıyoruz..

Coşkun:
Aha vallahi oldu abi, Ama neden PHP kodlarını yorumlamıyor bunları html olarak görüntülüyor abi?

Müslüm:
canım kardeşim çünkü, .htaccess dosyamızdaki

AddType application/x-httpd-php .html 

Kodunu kaldırıp onun yerine, diğer kodu yerleştirdik bu durumda, PHP kodlarımızı .html olarak yorumlamayacaktır.

Coşkun:
hmm anladım.. Peki diğer php uzantılı dosyamızıda URL de dizin halinde gösterecekmi yani http://localhost/deneme/aboutus/

Müslüm:
EE, ne duruyorsun açsana tarayıcı dene ve gör Güldürme beni :-)

Biraz not.. Coşkun, heyecanlı bir şekilde hemen, Masaüstünde bulunan Internet Explorer'a çift tıklar ve Tarayıcıya http://localhost/deneme/aboutus/ şeklinde bir istek gönderir.

Açılan sayfada Yazılmış olan php kodları yorumlanmış ve kendisine HTML olarak çıkmış vaziyettedir.

Coşkun:
İşte budur abi ya! Eline koluna diline sağlık. Gel öpeyim seni gel gel Güldürme beni :-)

Müslüm:
Hadi ordan yılışık herif.

Biraz not.. Müslüm geç olduğunu düşünerek evine akar.. Coşkun ise, aklında .htaccess ile ilgili daha fazla neler yapabileceğini düşünerek, toparlanır.. Çünkü artık eve gitme vakti gelmiştir..

Bir sonraki makalede görüşmek üzere.. Dilime dokunmayin :-)

Other Articles:

 

Hiratech Design Studio :-)

Mr. Resul Gok
Hiratech Design Studio
http://www.hiratech.com