Uzantılar neden URL'lerde sıklıkla gizlenir?


Yanıtlar:


29

URL'lerden uzantıları kaldırmanın birkaç nedeni vardır:

  • URL'lerin daha temiz görünmesini sağlamak için
  • URL'lerin yazılmasını kolaylaştırmak için
  • URL'lerin hatırlanmasını kolaylaştırmak için
  • URL'leri SEO anahtar kelimesini daha kolay hale getirmek için
  • Teknolojileri değiştirebilmek için - sitenizi bir teknolojiden diğerine taşımak istiyorsanız, kullanıcılar URL'lerde uzantı bulunup bulunmadığını bile bilmeden bunu yapmak en kolayıdır

Birçok site URL şuna benzer kılacak bir içerik yönetim sistemi (CMS) tarafından oluşturulan unutmayın: /index.php?page=this-is-the-widget-page. Bu özellikle çirkin ve sadece bir uzantıdan çok daha kaba. Kaldırmak için yeniden yazmak index.php?page=çok daha iyi olur.

Sunucular belge türünü başlık olarak gönderdiğinden, web'de uzantılara gerek yoktur. Web sayfaları text/html, görüntü olarak image/pngveya olarak sunulur image/jpeg. Bu, tarayıcıların, URL'nin metin, HTML, PDF veya resim içerdiğini anlamak için bir uzantı kullanmadan içeriği nasıl oluşturacağını bilmelerini sağlar (daha fazla bilgi için Internet medya türü Wikipedia makalesine bakın ).

Bazı web yöneticileri URL'lerinde bu içerik türüyle eşleşen bir uzantı kullanmayı tercih eder. Yani herhangi bir text/htmlbelgenin bir .htmluzantısı ve herhangi bir image/pngbelgenin bir .pnguzantısı olacaktır. URL'ler, içerik türleriyle ilgili meta verilerin kaybolduğu dosya sistemine kaydedildiğinde yardımcı olabilir. Çoğu dosya sisteminde, dosyayı açan program uzantı tarafından seçilir. Bu nedenle, bir sayfa PHP tarafından sunulsa bile, bazı web yöneticileri .phpuzantıyı kaldırır ve bazıları bunu onunla değiştirir .html.

Ayrıca, Yığın Taşması konusunda çok fazla tartışması olan uzantıları olmadığında URL'lerin sondaki eğik çizgi ( /) ile daha iyi bitip bitmeyeceği sorusu da vardır .


11
Bazı çerçevelerde (örn. MVC) URL bir dosyayı tanımlamaz, bu nedenle gizlenecek bir uzantı yoktur.
Henrik Ripa

6

Tüm web sunucularında bir veya daha fazla "varsayılan dosya" bulunur. Bir ziyaretçi eğik çizgi ile biten bir URL'ye /, yani bir klasöre gittiğinde görüntülenecek dosyadır .

Web sunucusu üzerinde varsayılan dosya adı ise index.phpve bir ziyaretçinin gider www.example.com/pagename/, onlar vardır aslında erişen www.example.com/pagename/index.php.

Hiçbir iz yoksa, /web sunucusu URL'yi kaldırmak için büyük olasılıkla URL'yi yeniden yazıyor olabilir, çünkü gerekli değildir. Aslında bu site bunu yapıyor.


2
Sorunun "nasıl" değil, "neden" olduğundan emin değilim. Patrik cevabınız nasıl yapılacağı konusunda kesinlikle doğru. Stephen, ancak, "neden" yanıtladı
Brandt Solovij

4

Bu, kendi kişisel web sitemde hedeflediğim "havalı" URI şeması türüdür.

Şahsen, bunu yapmaya başlamamın nedeni (ve muhtemelen çok daha fazla web tasarımcısı / geliştiricisi!) “Cool URI'lar değişmiyor” makalesini okuduktan sonraydı - bu belge World Wide Web'in kurucu babası Tim Berners tarafından yazılmıştır. -Lee.

Tim Berners-Lee'nin ünlü makalesinde, Stephen Ostermiller'in bu soruya mükemmel cevabında sahip olduğu aynı nedenleri belirtiyor .

Ana sorunuza, "Neden uzantılar URL'lerde gizlidir?" Sorusuna daha spesifik bir cevap vermek için, benim için temel nedenlerin:

1. URI'yi geleceğe hazırlamak için:

Örneğin, şu anda bir URI kullanmak için iyi bir fikir gibi gelebilir: http://www.example.com/page.pl burada .plbir Perl betiği için dosya exetension olmak. Ancak, bugünlerde, çoğu web geliştiricisi arka plan komut dosyası oluşturmak için ASP.NET veya PHP kullanıyor, bu yüzden bugün olsa da , http://www.example.com/page.php daha iyi bir fikir gibi geliyor, sonunda PHP ve ASP / ASP.net eski moda olacak. Bu yüzden daha iyi bir fikir, uzantıyı tamamen kaldırmaktır.

2. Okunabilirlik ve Hatırlanabilirlik:

“Serin” bir URI'nin insanlara sözlü olarak, kağıt üzerinde (örneğin reklamlar, kartvizitler vb.) Hatırlanması daha kolay geçmemek çok daha kolaydır.

3. “Korsanlık” *

Bu günlerde kullanıcıların büyük çoğunluğunun muhtemelen her şey için bir arama motorundan geçtiğini söylesem de - adres çubuğuna gidip yazacak insanları gördüm www.google.comve sonra Google'ı tam anlamıyla yazmak için kullandım www.ebay.com! Ancak, multimedya tabanlı bir web sitem varsa, URI http://www.example.com/video, müzik bölümünün URI altında bulunabileceğini ima ediyor http://www.example.com/audio. (Hala adres çubuğunu web sitelerine gitmek için kullanıyorum - bu tür şeyler hakkında oldukça "eski okul" dur!)

* (! Ah “Hackability” - O kelimeyi yapar hatta ?! var Kuyusu, bu mu şimdi !) :-)

4. ** Estetik: Onları daha güzel göstermek için! (OKB'yi suçla!)

Bununla birlikte, web yöneticilerinin birçoğunun aslında dinamik URI'lere bir dosya uzantısı eklediğini çeşitli SEO ile ilgili web sitelerini okuyarak fark ettim:

Gerçek URI şunlar olabilir: http://www.example.com/article

Bununla birlikte, web yöneticisi URI'yi "bakmak" için aşağıdaki gibi bir yeniden yazma işlemi gerçekleştirir: http://www.example.com/article.html

Bunun arkasındaki mantık, temel olarak, bir arama motorunun statik sayfalara daha yüksek bir sıralama atayacağıdır (görünüşe göre, değişme olasılığı daha düşüktür). (Tam olarak SEO konusunda uzman olmasam da, şahsen bu fikri kendim satın almıyorum - Google ve Bing'in algoritmalarının arkasındaki akıllarla, sahte bir dosya uzantısından biraz daha fazlasını alacağını tahmin ediyorum. yolunuzu SERP kutup pozisyonuna getirin!)

URI'leri adlandırma hakkında daha fazla bilgi için şu makaleleri okumanızı öneririz:

Tim Berners-Lee:

W3C KG İpuçları:

Brian Kelly (İngiltere Web Odağı / UKOLN - Bath Üniversitesi):

Bu yardımcı olur umarım!


2

Yukarıda verilen tüm cevapları tamamen kabul ediyorum. Uzantıların URL'de gizlenmesinin nedenlerinden birinin güvenlik olduğunu eklemeniz yeterlidir. Basitçe ifade etmek gerekirse, URL'deki uzantıyı göstermezseniz, uygulamanın oluşturulduğu teknolojiyi bulmak biraz zordur. Diyelim ki PHP'de yapılmış bir sayfa ve uzantı gizli değil, o zaman bir hacker potansiyel olarak PHP'nin güvenlik açıklarını belirleyebilir ve bazı kötü amaçlı etkinlikleri yürütmek için kullanabilir.


Yorumunuza katılıyorum, ancak arka plan teknolojinizi bir güvenlik önlemi olarak gizlemek için URI'leri kullanmanın yararsız olduğunu düşünüyorum. İlk bakışta, olan kullanılan belirli teknoloji gizleme. Ne yazık ki, bunun "aptal" hale getireceği tek kişi son kullanıcılar; bazılarının (çoğu değilse) bir URL'nin ne olduğu hakkında hiçbir fikri olmayan, ASP / PHP / vb. Daha iyi bir cümle eksikliği nedeniyle, bir tür "koroya vaaz vermek" gibisiniz
Jordan Clark

1

Sayfa uzantılarınızı gizlerseniz veya gizlemezseniz, kullanıcılar hangi teknolojiyi kullandığınızı hâlâ bilebilir. CURL kullanarak, başlık bilgisini alarak teknolojinizi elde etmek imkansız değildir.

curl -I -L rembatvideo.ga

Ardından, teknolojiniz, önbellek isteğiniz, bağlantınız ve daha fazlası gibi bir şey görürsünüz.


0

Tamamen "Stephen Ostermiller" tarafından açıklandığı gibi katılıyorum ama URL uzantısını gizlemek için bunun arkasında hile bahsetmek istiyorum. Ve bunun için .htaccess yeniden yazma kuralını kullanmanız gerekiyor, size yardımcı olan komut dosyası:

Harici .phpistekleri uzantısız URL'ye yönlendirin

RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L]
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.