url değişkenlerinde eğik çizgi


108

Coldfusion uygulamamı sayfada dinamik url'ler olacak şekilde kurdum, örneğin

www.musicExplained/index.cfm/artist/:VariableName

Ancak değişken isimlerim bazen eğik çizgi içerecektir,

www.musicExplained/index.cfm/artist/GZA/Genius

Bu bir soruna neden oluyor, çünkü uygulamam değişken adındaki eğik çizginin web sitesinin farklı bir bölümünü, sanatçı albümlerini temsil ettiğini varsayıyor. Yani URL başarısız olur.

Bunun olmasını engellemenin bir yolu var mı merak ediyorum? Değişken adlarındaki eğik çizgileri başka bir karakterle değiştiren bir işlev kullanmam gerekir mi?


4
Bunlar normal veya ileriye doğru eğik çizgilerdir. Ters eğik çizgi değil.
Caleb Hearth

Yanıtlar:


180

Eğik çizgilerden olduğu gibi kaçmanız gerekir %2F.


Tamam, bu iyi bir fikir gibi görünüyor,% 2F kullanmak için özel bir neden var mı?
namtax

1
Bu, standart URL kodlamasıdır.
SLaks

44
IIS, bunu hala bir olarak /keser ve yolu keser. :(
Piotr Kula

21
Apache bunu a / olarak yorumlar ve AllowEncodedSlashes yönergesi açılmadıkça rotayı keser (varsayılan olarak kapalıdır)
chim

5
Bu amaçla encodeURIComponentve kullanabilirsiniz decodeURIComponent.
Keavon

17

Eğik çizgileri /, _Wikipedia'nın boşluklar için kullandığı gibi bir alt çizgi gibi bir şeyle kolayca değiştirebilirsiniz . Özel karakterleri alt çizgi vb. İle değiştirmek yaygın bir uygulamadır.


4
Yaygın bir uygulamadır ancak en iyi uygulama DEĞİLDİR. Her tarayıcı bunu anladığından, her sunucu bunu anladığından ve her geliştiricinin bunu bu şekilde yapmayı öğrenmesi gerektiğinden, çıkış karakterlerini kullanmak en iyi uygulamadır. Alt çizgiler SEO İÇİN de KÖTÜ! Bunu da eskiden yaptığım ve zor yoldan geri döndüğünü ve seni çok acıttığını öğrendiğim için söylüyorum.
Piotr Kula

1
@ppumkin - neden böyle düşünüyorsunuz? Kaçan karakterlerin kullanılması, kullanıcı dostu olmayan ve teknik olmayan kullanıcılara çok tuhaf görünebilecek URL'ler ürettiği için gerçekten en iyi uygulama değildir. Bence URL'leri olabildiğince mantıklı tutmaya çalışmak en iyisidir
vsync

UNderscores ARE BAD FOR SEOYorumla ilgili olarak . Alt çizgiler Google tarafından alt çizgi olarak yorumlanır, Kısa çizgiler boşluklar olarak yorumlanır. Neden? Kodlayıcılar, pek çok kodlayıcı Google'ı (ilk günlerden beri Google'ın kendisi dahil) kullanır, eğer alt çizgileri foo_bararama sonuçlarında artık bulamayacağınız (muhtemelen bir tür sınıf) boşluklar olarak ele alırlarsa . Blah blah ... Sonuç olarak: "Optimize ettiğiniz" arama motorunun gerçekte nasıl çalıştığını anlarsanız, alt çizgiler SEO için kötü değildir.
William

8

Bunlardan kaçmanız gerekir, ancak %2Fmanuel olarak değiştirmeyin . Bunun için kullanabilirsiniz URLEncoder.

Örneğin URLEncoder.encode(url, "UTF-8")

O zaman söyleyebilirsin

yourUrl = "www.musicExplained/index.cfm/artist/" + URLEncoder.encode(VariableName, "UTF-8")

9
URLEncoder işlevi bazı tarayıcılarda, örneğin Chrome'da tanımlanmamıştır. Ben kullanımı önermek Yani encodeURIComponent, w3schools.com/jsref/jsref_encodeuricomponent.asp

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.