Osman KURT

Yazılım Uzmanı | MVC Eğitmeni

Asp.Net ve URL İşlemleri

Arakadaşlar geçen gün çalıştığım firmada ki çok sevdiğim bir abim kendisinin yöneticisi olduğu bir web sayfasına ait tam 4000 (dort bin) adet sub domain açıcağını söyledi. E tabi sizde takdir edersiniz ki 4000 tane sub domaini açmak her babayiğidin harcı değil yani :). Sağolsun kendisi yardıma bizi layık görmüş bu konu hakkında fikir üretmiş bunların yapılabilirliğini ve yapabilirmiyim diye bana geldi. Bende düşündükleri derya deniz olan bu abimin bazı isteklerinin (baya fazla) yapılabileceğini ve yapabileceğimi söyledim. Tabi kendi işimi aksatmadan :)

Neyse işe ilk olarak bir kolay portal oluşturarak başladım. Sonra bu sub domainlerin google da ilk sıraları zorlaması için portal içine dinamik bir met tag yönetimi yaptım. Bu dinamik meta tag yönetiminin kodlarınıda başka bir yazıda paylaşıcam elbet sizinle. Daha sonra anasayfa kısmında başka bir arkadaşımında yardımıyla asıl web sayfasının veritabanına bağlanarak ordan random bir şekilde 20 adet ürün çektim. Asıl önemli kısım bunları yaparken en kolay en basit ve en kısa zaman da yapmaktı bunun içinde oluşturduğumuz portalın image dosyalarından tutun da css dosyasına kadar olan bütün dosyalarını ana dizinde tuttuk yani açtığımız bütün sub domainler aynı yerden image dosyalarını ve css doayalarını çekiyor. Buda bize çok fazla zaman kazandırdı. Bu olayı yaparken yazılımcı olduğum için bişeyler ürettiğim için gerçekten mutl oldum. Yazılımın tadına vardım. Normalde yaptıığım şey çok küçük bişey ama ortaya bişey koymak gerçekten küçükte olsa bir yazılımcıyı mutlu edebiliyormuş.

Gelelim asıl konuya benim takıldığım bir nokta url yönetimiydi.O da nasıl bişey, açtığımız her subdomainin ismi yaptığımız sitelerde bize lazım olacaktı, metatag'larda kullanmak için. İnternette baya bişey araştırdım. Sonunda buldum. Meğer neler varmış ya :). Şimdi bu bulduğum kod parçacıklarından bazılarını sinle paylaşmak istedim. Çünkü benim dışında sizinde işinize yarayacağına inanıyorum.

Bu işlemlerden bazıları;
 
//root dizini verir.
Response.Write("root dizin : " + HttpContext.Current.Request.Url.Host.ToString());
//sonraki dizinler
Response.Write("sonraki dizin : " + HttpContext.Current.Request.Url.AbsolutePath.ToString());
//Full adres satırı
Response.Write("Full adres : " + HttpContext.Current.Request.Url.AbsoluteUri.ToString());
//Portlu Full adres satırı
Response.Write("Portlu Full adres : " + HttpContext.Current.Request.Url.OriginalString.ToString());
//Portu
Response.Write("Portu : " + HttpContext.Current.Request.Url.Port.ToString());
//Query
Response.Write("Query :" + HttpContext.Current.Request.Url.Query.ToString());
//http
Response.Write("http : " + HttpContext.Current.Request.Url.Scheme.ToString());
QueryString almak için aynı zamanda Request.QueryString["id"] şeklinde bir kullanımda gerçekleştirebiliriz.

Osman KURT
Yazılım Uzmanı

Yorumlar (2) -

  • bilal

    23.5.2011 09:18:23 | Yanıtla

    bende bu sisteme benzer bi sistem yapıyorum fakat bu dinamik sub domain olayını web config kısmını hallemedim  web config kodu :
    <system.webServer>
            <rewrite>
                <rules>
                    <rule name="subdomainsistemi">
                        <match url=".*" />
                        <conditions>
                            <add input="{HTTP_HOST}" pattern="^www\.kampusum\.com$" negate="true" />
                            <add input="{HTTP_HOST}" pattern="^([^.]+)\.kampusum\.com$" />
                        </conditions>
                        <action type="Rewrite" url="uye.aspx?kullanici={C:1}" />
                    </rule>
                </rules>
            </rewrite>
        </system.webServer>
    yazıyorum fakat hata alıyorum yardımıcı olursanız çok sevinirim ...

  • batuhan

    22.2.2014 03:02:37 | Yanıtla

    Merhaba,
    Bu bitirme projesi alıyorum ve bir basit sosyal ağ sitesi geliştirmeye çalışıyorum.Platform asp.net mvc 4.
    Projede facebook gibi arkadaşlarınlar özelden konuşabilcek bir chat bar yaptım(real time chat signalr kütüphanesi yardımıyla).Sorunum şu , aynı browser dan kullanıcı 6 tab açıkken 7. tab açılmaya çalıştığında clienttan server a request gitmiyor.Biraz araştırdım,browserların kendi limitleri varmış ve signalr kullanırken 6 server connection açmaya izin vermiyor ayni browser, bazı yerlerde çözüm için subdomain kullanmak gerektiğini okudum 1 veya 2 bağlantı açılıp geri kalan bütün requestlerde bu açılan bağlantıların subdomain oluşturup onlar üzerinden işlem yapılması çözüm olduğu yazıyor ancak hiç bir uygulama bulamadım malesef. Subdomainden bahsetmişsiniz eğer bu anlattığım konu hakkında bir fikriniz farsa lütfen paylaşın, nasıl bir çözüm üretilmeli yada subdomain nası oluşturulur.   Bilgilendirirseniz beni sevinirim teşekkürler.

Loading