İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

.Htaccess kullanarak dosya uzantılarını dizin olarak okutmak

Partizan

0
İyinet Üyesi
Katılım
1 Eylül 2006
Mesajlar
63
Reaction score
0
Konum
S.S.C.B.
Merhaba lem Coşkun naber?
İyi değilim abi, canım çok sıkkın ya..
Neden lem neyin var? hayırdır..
Yahu adamlar çıkarmış htaccess mi neyse, adam gibi uzantımı dizin haline çeviremedim.. İnternette o kadar araştırdım adam gibi bir bilgi elde edemedim...
Hadi canim, kendini parçalama bu tarz şeyler için yahu.
Niye parçalamiyim abi, olmuyor işte, 5 saattir araştırıyorum bulamadım..


######
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. 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, fakat benim istediğim bu insanlar benim uzantımı görmesinler, veya php uzantılı ise, ben bunu .html .phtml veya .shtml olarak sunmak istiyorum. İstemiyorum abi görmelerini bu benim hakkımda 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, htaccesss 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 unix 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 localhostumuzda bir klasore yaratalim ve içine, .htaccess adında dosya oluşturup hemen şu kodu girelim..

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: 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..

deneme.html Sayfamızın Kodları

<?
// 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..

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_rewrite 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..


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


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;

<?
// 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 :)

######
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 :)

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

######
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..
######

- ceviz.net 'ten alintidir.
 

thereX

0
İyinet Üyesi
Katılım
23 Kasım 2005
Mesajlar
372
Reaction score
2
süper bir konu. ben hta'nın bir kısım nimetlerinden bahsetmistim ve aynı konuyu bir site'de gormustum ama senin paylasimin cok daha aciklayici. cok tesekkurler.
 

Hostmaster

0
İyinet Üyesi
Katılım
26 Ağustos 2006
Mesajlar
1,486
Reaction score
0
www.sphereturk.com gibi diyorsun yani aynı script.
.htaccess'i aç ve aşağıdakileri en üste ekle: (En üst olması şart mı bilmiyorum garanti olsun öyle yap :D)
Kod:
DirectoryIndex index.html index.htm news.php index.php
 

KaRaKTeR

0
İyinet Üyesi
Katılım
6 Temmuz 2004
Mesajlar
1,920
Reaction score
36
Malesef dedigin olmadı Hostmaster bunu zaten denemiştim
 

KaRaKTeR

0
İyinet Üyesi
Katılım
6 Temmuz 2004
Mesajlar
1,920
Reaction score
36
evet mesela dedigin gibi yaptım tamam siteadresi olarak çıktı direk ama ortadaki blokların hepsi kayboldu
 
B

bEbeQ

Misafir

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst