Link Sonundaki .php .asp .html Uzantıları Gizleme

Merhabalar, bugün .php uzantısı silme veya .html uzantısı silme konusunda kısaca link sonundaki / ibaresini silmeyi göreceğiz. Link sonundaki .php .html uzantı gizleme için kullanacağımız yöntem .htaccess dosyasını editlemekten ibaret. Şimdi link sonundaki uzantıları gizleme konusunda aşağıdaki ilk 3 kod parçacığı işinizi görecektir. Bunun SEO’ya katkısını konuşmaya bile gerek yok.

.Php uzantısını gizlemek için :

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

VEYA

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC,L]

.html uzantısını gizlemek için :

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html [NC,L]

Link Sonundaki .php .asp .html Uzantıları Gizleme

Burada yer alan kodlardan bahsedecek olursam , ilk satır zaten .htaccess kodunu çalıştırmak için gerekli. İkinci satırda nereyi düzenleyeceğimizi seçiyoruz. Üçüncü satırda ise tahmin edebileceğiniz gibi dosya uzantısını giriyoruz.Ben php tabanlı çalıştığım için php uzantısını girdim.En son satır ise $ işaretinden sonra gelecek uzantıyı gizlemeye yardımcı oluyor.Eğer quit.php ya da contact.php gibi uzantıya sahip sayfalarınız var ise bu yöntemle onlar siteadi.com/quit ya da siteadi.com/contact olarak değiştirebilirsiniz.

Bunun neden yapıldığına bakacak olursak ; sonuçta bu yapılan uzantılar kullanıcıyı çokta ilgilendirmiyor. Seo uyumlu link yapmaktaki asıl amaç da kullanıcı için uygun linki göstermekse şayet böyle bir kullanım doğru olacaktır.Ayrıca google amca .php .asp gibi uzantıları da sevmiyor bu arada.


Güncelleme

Yukarıdaki kodlar bazı arkadaşlar için 404 ve 500 hatalarını doğurduğu için aşağıda özellikle php projeleri için yeni ayarladığım kodu paylaşıyorum. Diğer uzantıları gizlemek isterseniz aynı mantığı uygulayabilirsiniz.

<IfModule mod_rewrite.c>
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*)$ $1.php 
RewriteRule ^([a-z]+)\/?$ $1.php [NC]  
</IfModule>

Şayet linklerinizi index.php?sayfa=2 şeklinde oluşturduysanız bunu da düzeltmenin yolu var elbette. Bu konudan da bu yazımda bahsetmiştim. Eğer bu işlemleri yaptıktan sonra sayfanız çalışır fakat açılan sayfada bir css sorunu yaşarsanız yine sayfanın altında belirttiğim gibi <base href=”https://www.harunalp.com/” /> şeklinde bir yol belirtmeniz yeterli olacaktır. İyi çalışmalar 🙂

5/5 - (3 votes)

AuthorHarun ALP

Bu adam , bilgi sahibi olduğu konularda makalelerini daha bilgilendirici hale getirip görseller ile süslüyor ve seo uyumlu makaleler ortaya çıkarıyor. Güncel webmaster konularını işlemekten keyif alıyor ve genelde her makale aslında bir sorunun çözümü niteliğinde.

33 thoughts on “Link Sonundaki .php .asp .html Uzantıları Gizleme

  1. Sağol dostum.

  2. o dosyayı oluşturdukta g*tümüzemi sokacaz kardeşim. oluşturalım dursun mu öyle bilgisayarda

    • Yorum için teşekkürler , üslup da gayet iyi. Neyi anlamadığınızı da anlamadım ya gerçi. Projenizde uzantıları gizleyecekseniz ortada bir proje olmalı değil mi ? Örneğin script adında bir proje var ve içerisinde yazmış olduğunuz proje kodları sayfaları yer alıyor. Bu htaccess dosyasını ana projenin ana dizinine koyacaksınız. Ana dizinde dosya kendisi zaten url kaldırma işlemini yapacaktır.

      • eyvallah kardeşim işe yaradı.

  3. Ben yaptım olmadı acaba mümkünse özelden ulaşa bilrimisiniz

    • Merhaba ümit bey , gerekli cevabı size gmail hesabınızdan verdim. Ek olarak .htaccess dosyasını da gerektiği gibi yapılandırıp tarafınıza ilettim. Ayarları belirttiğim gibi yaparsanız çalışacaktır.

      Ek olarak aşağıdaki kodu php projenizin gerekli .htaccess sayfasına (diğer kodları tamamen silip) eklerseniz sorun ortadan kalkacaktır.


      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME}.php -f
      RewriteRule ^(.*)$ $1.php
      RewriteRule ^([a-z]+)\/?$ $1.php [NC]

  4. .htaccess dosyasını oluşturup kodları yazmanıza rağmen çalışmıyorsa web.config’i deneyin.
    Dosya ismi : web.config
    Konulacak yer : Anadizin
    Kodlar :

    (Kodda bir değişiklik yapmanıza gerek yoktur)

  5. site.com/index.php, site.com/index olarak çalışıyor çok teşekkürler.
    Ancak benim bir sorum daha var hangi dilde kodlama yapıldığının gizlenmesi için site.com/index.php, site.com/index.aspx ya da site.com/index.html şeklinde girildiğinde 404 yönlendirmesini nasıl yapabiliriz? Yani sadece site.com/index olarak ulaşılabilmesini istiyorum.

    • Birinin sizin kodlama dilinizi bilmesi için uzantıyı gizlemeniz yetmez. İlla ki kodlamadan anlaşılır. Ek olarak php htaccess kullanımı hakkında bir makala hazırlamıştım. Bahsettiğiniz şeye hazırladığım içerikte yer vermemişim. Bu konuda bilgim yok diyebilirim ,yani hiç ihtiyacım olmadı. Belki burada bilen birisi var ise sizi aydınlatabilir.

    • sorunun üstünden 4 yıl geçmiş bu konuda araştırma yapanların ihtiyacı olabilir diye yazmak istedim.
      php uzantısını farklı bir uzantı ile değiştirin örneğin .kxk yapabilirsiniz.
      bunun için alttaki kodu htaccess dosyasına ekleyin ve sitenizdeki tüm dosya uzantılarını belirlediğiniz uzantı ile değiştirin.
      RewriteEngine On
      AddType application/x-httpd-php .kxk

      Sonrasında ise Editör’ün bahsettiği şekilde uzantıları gizleyin.

      Benim araştırıp bulamadığım tek sorunum var o da sayfalarda kullandığım buton menü vs. buralardaki uzantıları tek tek kaldırmadan nasıl uzantıyı yok edebilirim? Anlatabildim mi bilmiyorum ama örneğin menüde kullandığım /anasayfa.php butonuna tıkladığımda php uzantısı ile açıyor. Yönlendirme yapmayı düşündüm bu seferde üzerine geldiğinde altta .php yazıyor. Bu sorunu nasıl çözerim var mı bir fikir?

      • Bence url de görünen önemlidir altta çıkan uzantı değil. Yani sen bir url yönlendirmesi yaparsın, exam.php diye. Bunu alır parçalarsın ve exam.php yerine direkt /exam a gönderirsin. Klasik bir parçalama yöntemi ile. “.” dan sonrasını almazsın ya da .php yi direkt silersin yöntemleri var. Ama tabi bir kereliğine mahsus uzantıları kaldırman daha kolay olacaktır. Yine de dediğim gibi gelen url bilgisini alıp temizleme yaparak .php uzantısız haline yönlendirebilirsin. Ki htaccess kodu sebebiyle kod bunu yer ve cuk diye oturur.Umarım doğru yorumlamışımdır.

  6. Merhaba,

    .asp uzantısını kaldırmak için vermiş olduğunuz kodları .htaccess dosyası oluşturdum ve anadizine yükledim fakat hiçbir işe yaramadı.

    Yardımcı olursanız sevinirim…

    • Merhaba, .htaccess dosyasını oluşturmak bazen sıkıntılı olabiliyor , bazen uzantı gizliliği vs sorun olabiliyor. Bunun dışında eğer başarıyla oluşturduysanız ve yine çalışmıyorsa “Umut Akdeniz” arkadaşımızın aşağıdaki yorumuna bakıp o yöntemi de deneyebilirsiniz. Yine olmazsa yorumda belirtirsiniz.

      İyi çalışmalar.

  7. Dostum cok tesekkurler cok iyi bir yazi olmus eline diline saglik.
    Benim sıkıntım tam tersi
    Gecen yil htm ve html linklerimi htaccess ten gizledim simdi geri getirmek istiyorum google sitemi

    http://www.siteadi.com/sayfa seklinde taramış

    Ben htaccessten kodu kaldirdim
    Sitenin isleyisinde bir sıkıntıda yok
    Tek sikinti googledan girildiginde html uzantisi olmadigi icin 404 sayfasina yonleniyor

    Linkin sonuna htaccess ten nasil .htm ve .html uzantisi ekleyebilirim google sitemi tarayipta tekrar
    http://www.siteadi.com/sayfa.html yapana kadar

    • Dostum siteye girişte linkler arası geçişte problem yoksa sorun da yoktur.Eğer bu htaccess düzenlemesini yakın zaman içinde yaptıysanız google’ın yeni linklerinizi indekslemesini bekleyin.(Bkz: webmaster tools kullanın , tarama hataları ve mesajları takip edin) Bunun dışında google’da “htaccess url değiştirme” diye aratabilirsiniz.Yalnızca sayfa olanlarda uzantıyı gizlersiniz. Güncel blog veya ürün linklerinizde ise html veya htm linkiniz kalsın bu google gözünde önemli bir unsurdur.

  8. Selamlar benim önemli bir sorum olacak kısa sürede cevaplarsanız çok memnun olurum, öncelikle dediğiniz adımları uyguladım tüm linklerim sorunsuz çalışıyor ve admin panele bağlanmak istediğimde haliyle satıra “siteadi.com/admin” yazıyorum ama nedense admin içerisindeki index.php’ye kesinlikle yönlendirmiyor normal şartlarda yönlendiriyor ne zaman .htaccess eklersem o zaman yönlendirmiyor

    • mail adresinize yazdım kontol eder misiniz gelen kutunuzu

  9. Merhabalar, işlemleri proje konumuna .htaccess dosyası oluşturup deniyorum olmuyor. Yardımcı olur musunuz ?

    • Umut Akdeniz adlı arkadaşın yorumda belirttiği yöntemi de deneyin.Olmazsa mail üzerinden oluşturduğunuz dizini ve eklediğiniz kodları gönderin bana.

  10. html üzerinden yapılan sitede nasıl olması gerekiyor yapamadım mail’den yardımcı olur musunuz ?

    • RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^([^\.]+)$ $1.html [NC,L]

      Bu kodu htaccess dosyanıza eklediğinizde eğer htaccess dosyasını başarılı bir şekilde oluşturduysanız html uzantıları gizlenecektir. (Htaccess dosyası oluşturmakta sorun yaşayan bazı kullanıcılar olmuştu sağlıklı bir şekilde dosya özelliklerinden kontrol ederek oluşturun.)

  11. Merhaba localhost/ESEMTECHNOLOGY/index.php
    bu şekilde olan bir sitenin php linklerini kaldıramadım. Klasör olduğu için sanırım. Ne yapmam gerekli yardımcı olurmusunuz?

    • Yaptığınızın aynısını yaptım. Localde klasör oluşturup çalıştırdım.Fark eden bir şey yok.


      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME}.php -f
      RewriteRule ^(.*)$ $1.php
      RewriteRule ^([a-z]+)\/?$ $1.php [NC]

      Bu kodu olduğu gibi yapıştırın her satıra buradaki gibi denk gelecek şekilde. .htaccess dosyanızdaki tek bir hata 500 çıktısı verdirir.

      Bunu yaptığınızda göreceksiniz ki (bendeki link) localhost/htc/author.php ye localhost/htc/author olarak erişebileceksiniz.

  12. teşekkürler güzel olmuş

  13. İşe yaradı , teşekkürler

  14. Hortlatıyorum,
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^\.]+)$ $1.html [NC,L]
    Bende böyle bir kod var
    Bu kodda html kısmını örneğin png yaptım
    Yine de çalışır mı?
    Eğer öyleyse tüm uzantılar için yapacağım 😀

    • RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^([^\.]+)$ $1.html [NC,L]
      RewriteRule ^([^\.]+)$ $1.js [NC,L]
      RewriteRule ^([^\.]+)$ $1.css [NC,L]
      falan oluyoru mu?

  15. Merhaba html içim kodları yaplaşırmısınız hocam, ve kod dosyalarımızın içine mi koyaca htaccess dosyasını

    • html için de kodlar yorumlarda mevcut. zaten sadece uzantıyı değiştireceksiniz. 2. soru için ise .htaccess dosyası oluşturmanız gerekir. yani dosya oluşturun ve adını “.htaccess” yazıp kaydedin. Beyaz bir saf dosya oluşacaktır. Bu dosya ana dizininzde olacak. Yani index.html,index.php artık ana dizini nereden çalıştırıyorsanız.

  16. hocam merhaba söylediğiniz herşeyi yapıyorum fakat işe yaramıyor .hmtl yine gözüküyor

    • RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME}\.html -f
      RewriteRule ^(.*)$ $1.html [NC,L]

      Bu kodu .htaccess dosyanıza ekleyip tekrar deneyin. a href kısmında da .html uzantısını kaldırırsınız.

Ümit Akdeniz için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir