Ceviz Forum'a hoşgeldiniz.
6 sonuçtan 1 ile 6 arası gösteriliyor
  1. #1
    Ceviz Üyesi
    Üyelik Tarihi
    09/2010
    Yer
    İstanbul
    Mesaj
    18

    Varsayılan Global.asax Arapça v.b diller URL Rewrite

    Selam,

    Global.asax da klasör yollarını alarak url rewrite kısmında sorun yaşamıyorum, malum,

    PHP Kodu:
    If yol.IndexOf("Fintek/") <> -1 Then

    Dim path 
    As String() = System.IO.Path.GetFileName(yol).Split("-")

    If 
    System.IO.Path.GetExtension(yol) = ".aspx" Then

    Context
    .RewritePath("../kisi.aspx""""sid=" path(0), True)
    Else
    Context.RewritePath("../kisiler.aspx")
    End If
    End If 
    Sorun şu ki, arapça v.b non latin dillerde Url rewrite kısmında sorun yaşıyorum. aşağıdaki Uri escapedata da maalesef işe yaramadı...

    PHP Kodu:
    If HttpContext.Current.Request.Url.ToString().Contains("/Fintek/"Then
    Dim txt 
    As [String]() = Regex.Split(HttpContext.Current.Request.Url.ToString(), "-")
    Dim page As [String] = txt(txt.Length 1)
    HttpContext.Current.RewritePath("../kisiler.aspx?sid=" Uri.EscapeDataString(page(0)),true)
    End If 

    Şimdiden teşekkürler...

  2. #2
    Varlığa izin veren boşluk
    Üyelik Tarihi
    04/2004
    Yer
    Mavi kabarcığın içi
    Mesaj
    3,413

    Varsayılan

    Merhaba;

    Sanırım arapça veriyi url üzerinden aktarmaya çalışıyorsunuz. Arapça dil seçeneği olan site yalnızca bir kere yaptım, ancak biz Arapça ifadeleri url de geçirmemiştik. Bağlantıyı verirken, arapça karakterleri latince harflere çevirerek denerseniz işlemin başarılı olacağını düşünüyorum.

    Örneğin Türkçe karakter içeren bir url yi SEF hale getirirken biz : Türkçe karakter içeren url => turkce-karakter-iceren-url

    Şeklinde bağlantı veriyoruz. Aynı şekilde Arapça bağlantılarınızı da bu şekilde kaydederek xAB gibi harflerin hexadecimal karşılıklarını kaydederseniz olacağını düşünmekteyim. Eğer bu olmuyorsa lütfen örnek bir veri yazınız, uygun bir zamanda çok küçük örnek bir proje hazırlayıp sorunu çözmeye çalışabilirim.
    "The most successful method of programming is to begin a program as simply as possible, test it, and then add to the program until it performs the required job."
    --PDP8 handbook, Pg 9-64

  3. #3
    Ceviz Üyesi
    Üyelik Tarihi
    09/2010
    Yer
    İstanbul
    Mesaj
    18

    Varsayılan

    Tekrar Merhaba,


    Anov, rica etsem şu linke bir gözatabilirmisiniz ? zira arapça url rewrite ile ilgili bilgi vermiş bir arap menşeili kişi.. örnek olara deniyorum saatlerdir, farklı yollarda denedim bir türlü yapamadım bu kişi gibi...
    ( olay bu : 'http://localhost:1234/Pages/نائب العميد للشؤون الأكاديمية )

    Ayrıca, arapça harfleri şayet latine convert edersem, url rewrite etmenin pek anlamı kalmayacak zira urllerin arama motorlarında arapça türkçe ve diğer dillerde listelenmesi olayı mevcut... dolayısıyla arapçayı latine çevirirsem, bu özelliği kaybedeceğim demektir..

  4. #4
    Ceviz Üyesi
    Üyelik Tarihi
    09/2010
    Yer
    İstanbul
    Mesaj
    18

    Varsayılan

    hmm, bir sonuca ulaştım aslında, ( querystring almada sıkıntım yok )

    'http://localhost:4324/d1/1730--#1587;-#1575;-#1582;-#1578;--#1587;-#1740;-#1587;-#1578;-#1605;--#1607;-#1575;-.aspx




    şimdi bir kaç arap sitesinden kontrol ettiğim kadarıyla, onlarında urlleri böyle,

    http://www.google.com.tr/#hl=tr&biw=...74bb2a9057e0a1

    ilk sayfa 3. sonuçta google url böyle olmasına rağmen düzgün indekslemiş gibi görünüyor, yoksa benmi hatalı düşünüyorum ??

  5. #5
    Varlığa izin veren boşluk
    Üyelik Tarihi
    04/2004
    Yer
    Mavi kabarcığın içi
    Mesaj
    3,413

    Varsayılan

    Verdiğiniz bağlantıda, eğer bir url rewrite kütüphanesi çözümü kullanıyorsanız, Arapça url için bu kuralı iptal etmenizi, bunun yerine global.asax içinde Application_BeginRequest olayında gelen urlyi Split işleminden geçirdikten sonra, sayfa ismini Uri.EscapeDataString() işleminden geçirmenizi söylemiş.

    Arapça ifadenin alındığı sayfada ise, Uri.UnEscapeDataString ile gönderilen orijinal verinin okunması söylenmiş. Eğer ilk mesajı attığınız zaman siz de Uri.UnEscapeDataString kullanmış iseniz, o zaman başka bir sorun var demektir.

    İki seçenek var:

    1. Uri.EscapeDataString() ile global.asax içinde yakalanan url yi ascii olarak sayfaya aktarıp, sonra Uri.UnEscapeDataString ile çözmek.
    (Bu durumda url içinde arapça karakterler geçebilir.

    2. Uri.EscapeDataString veya benzeri bir arapça karakteri ascii karaktere çevirme yöntemini bağlantı verirken kullanıp, sonra onu almak. (Bu durumda kayıtlı veriyi karşılaştırmanız için, veritabanında aynı şekilde kaydedilmiş bir alan bulundurmanız karşılaştırma hızını arttıracaktır.)

    Benim önerdiğim ikinci seçenek idi, eğer birinci seçeneği çalıştırmakta başarılı olmuşsanız, benim önerimi uygulamamanız gerekir.

    Çünkü genellikle Türkçe siteler yaptığım için ve Türkçe ASCII karakter setine çok yakın olduğu için, ben ikinci seçeneği uyguluyorum ve arama motoru Türkçe harflerden arındırılmış url lere ayrı bir muamele göstermiyor. Bu yüzden sizi yanlış yönlendirmek de istemem.

    İyi çalışmalar.
    "The most successful method of programming is to begin a program as simply as possible, test it, and then add to the program until it performs the required job."
    --PDP8 handbook, Pg 9-64

  6. #6
    Ceviz Üyesi
    Üyelik Tarihi
    09/2010
    Yer
    İstanbul
    Mesaj
    18

    Varsayılan

    Öncelikle herhangi bir bileşen, kütüphane ya da control kullanmıyorum, manuel olarak Url Rewrite uyguluyorum Global.asax içerisinden index of alarak;

    Umarım birilerine faydası dokunur, çözüm şu şekilde;

    Url'yi normal global.asax içerisinden http ya da index of mantığıyla yönlendiriyorsunuz (ilk mesajda örneği mevcut ) daha sonra, göndereceğiniz url'ye link verirken, önce uri.escapedatastring ve ardından varsa türkçe karakter, boşluk v.b replace fonksiyonuzu kullanıyorsunuz (hem türkçe hem arapça v.b karıştırmaması için ) ardından urlyi veriyorsunuz. Global.asax içerisinde, urlyi yönlendirirken yine aynı şekilde path kısmında sadece uri.escapdatastring kullanıyorsunuz.

    Url'yi request ederken uri.unescapedatastring ile kaçıp, split etmeden de alabilirsiniz ID numarasını. Ancak, URL lerin arapça yazılma olayı ( browser adres çubuğunda, arapça dil paketiniz işletim sisteminizde yüklü değilse, kullanmıyorsanız gerek de yok ) yok. Bu şekilde permalinklesenizde google ve diğer arama motorları(en azından hatırı sayılanlar) arapça harfleri indeksleyebildiğiniz görüyoruz.

    Bu bahsedilen method sadece arapça değil, diğer non latin alfabeler için de geçerlidir arkadaşlar..

    iyi çalışmalar dilerim.


 

Konu Bilgileri

Users Browsing this Thread

Şu an 1 kullanıcı bu konuya bakıyor. (0 üye ve 1 ziyaretçi)

Sık Kullanılanlar

Sık Kullanılanlar

Mesaj Yazma Hakları

  • Yeni mesajgöndermezsiniz
  • Cevap yazamazsınız
  • Dosya ekleyemezsiniz
  • Mesajınızı düzenleyemezsiniz
  •  
Yukarı Çık