• 10-02-2024, 15:19:23
    #1
    Dostlar merhaba, klasik Asp ile ilgili bir web sitem var.
    Linkler şu şekilde olmasını istemiyorum. Hosting Natro'da.
    /Institutional.asp?projectID=138&CatID=10

    URL rewrite ile yapabilecek veya yardım edecek arkadaşlarım....
  • 13-02-2024, 01:26:43
    #2
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <system.webServer>
        <rewrite>
          <rules>
            <rule name="urlrewle" stopProcessing="true">
              <match url="^([a-z-]+)-([a-z-]+)(.*)" />
              <action type="Rewrite" url="/Institutional.asp?projectID={R:1}-{R:2}" />
            </rule>
          </rules>
        </rewrite>
        <staticContent>
          <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
        </staticContent>
        <caching>
          <profiles>
            <add extension=".jpg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
            <add extension=".jpeg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
            <add extension=".png" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
            <add extension=".js" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
            <add extension=".css" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
            <add extension=".woff" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
          </profiles>
        </caching>
        <urlCompression doDynamicCompression="true" />
        <httpErrors>
          <remove statusCode="404" subStatusCode="-1" />
          <remove statusCode="500" subStatusCode="-1" />
          <error statusCode="404" prefixLanguageFilePath="" path="/404.asp" responseMode="ExecuteURL" />
          <error statusCode="500" prefixLanguageFilePath="" path="/500.asp" responseMode="ExecuteURL" />
        </httpErrors>
      </system.webServer>
      <appSettings>
        <add key="CKFinderTempPath" value="" />
      </appSettings>
      <system.web>
        <compilation tempDirectory="C:\Inetpub\vhosts\domain.com\tmp" />
      </system.web>
    </configuration>
    yukarıdaki kodu hosting anadizinde web.config dosyasının içine atıp değiştirebilirsin ve geliştirebilirsin. <rule name="yeniisimver" ></rule> ile de sayfa yapılarını genişletebilirsin.
  • 13-02-2024, 19:28:20
    #3
    teriyaki adlı üyeden alıntı: mesajı görüntüle
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <system.webServer>
        <rewrite>
          <rules>
            <rule name="urlrewle" stopProcessing="true">
              <match url="^([a-z-]+)-([a-z-]+)(.*)" />
              <action type="Rewrite" url="/Institutional.asp?projectID={R:1}-{R:2}" />
            </rule>
          </rules>
        </rewrite>
        <staticContent>
          <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
        </staticContent>
        <caching>
          <profiles>
            <add extension=".jpg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
            <add extension=".jpeg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
            <add extension=".png" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
            <add extension=".js" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
            <add extension=".css" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
            <add extension=".woff" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
          </profiles>
        </caching>
        <urlCompression doDynamicCompression="true" />
        <httpErrors>
          <remove statusCode="404" subStatusCode="-1" />
          <remove statusCode="500" subStatusCode="-1" />
          <error statusCode="404" prefixLanguageFilePath="" path="/404.asp" responseMode="ExecuteURL" />
          <error statusCode="500" prefixLanguageFilePath="" path="/500.asp" responseMode="ExecuteURL" />
        </httpErrors>
      </system.webServer>
      <appSettings>
        <add key="CKFinderTempPath" value="" />
      </appSettings>
      <system.web>
        <compilation tempDirectory="C:\Inetpub\vhosts\domain.com\tmp" />
      </system.web>
    </configuration>
    yukarıdaki kodu hosting anadizinde web.config dosyasının içine atıp değiştirebilirsin ve geliştirebilirsin. <rule name="yeniisimver" ></rule> ile de sayfa yapılarını genişletebilirsin.
    Teşekkür ederim. Hemen deneyeceğim.
  • 13-02-2024, 20:01:31
    #4
    Nasıl bir URL yapısı istiyorsun bunu bilmediğimden sadece web.config konfogirasyon paylaştım. Yukaridaki koda göre İçerik veritabanında seourl kolonu açıp ornegin bir içeriğin seourlsini abc-bcd yaptigini farzedersen domain.com/abc-bcd.htm şeklinde sayfan açılacaktır. İçerik sayfanda eskiden id'yi request ediyordun buna görede artık requestin seourl olması gerekir. Sayfaya yönlendirme linklerinide domain.com/<%=degisken("seourl")%>.htm yapman yeterli.
  • 25-02-2024, 21:23:31
    #5
    iis kullanıyorsanız rewrite modülü var iis için onu Microsoft'un sitesinden yukleyip sitenizin yönetim ayarlarına girip rewrite kurallarinizi ekleyebilirsiniz
  • 03-03-2024, 12:39:16
    #6
    teriyaki adlı üyeden alıntı: mesajı görüntüle
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <system.webServer>
        <rewrite>
          <rules>
            <rule name="urlrewle" stopProcessing="true">
              <match url="^([a-z-]+)-([a-z-]+)(.*)" />
              <action type="Rewrite" url="/Institutional.asp?projectID={R:1}-{R:2}" />
            </rule>
          </rules>
        </rewrite>
        <staticContent>
          <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
        </staticContent>
        <caching>
          <profiles>
            <add extension=".jpg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
            <add extension=".jpeg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
            <add extension=".png" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
            <add extension=".js" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
            <add extension=".css" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
            <add extension=".woff" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
          </profiles>
        </caching>
        <urlCompression doDynamicCompression="true" />
        <httpErrors>
          <remove statusCode="404" subStatusCode="-1" />
          <remove statusCode="500" subStatusCode="-1" />
          <error statusCode="404" prefixLanguageFilePath="" path="/404.asp" responseMode="ExecuteURL" />
          <error statusCode="500" prefixLanguageFilePath="" path="/500.asp" responseMode="ExecuteURL" />
        </httpErrors>
      </system.webServer>
      <appSettings>
        <add key="CKFinderTempPath" value="" />
      </appSettings>
      <system.web>
        <compilation tempDirectory="C:\Inetpub\vhosts\domain.com\tmp" />
      </system.web>
    </configuration>
    yukarıdaki kodu hosting anadizinde web.config dosyasının içine atıp değiştirebilirsin ve geliştirebilirsin. <rule name="yeniisimver" ></rule> ile de sayfa yapılarını genişletebilirsin.
    kaç senedir asp kullanıyorum. bilmiyordum o zaman klasik asp'de de url seo yapılır bu şekilde gerek kalmadı php öğrenmeye. Teşekkürler paylaşım için.
  • 06-03-2024, 10:01:28
    #7
    Misafir adlı üyeden alıntı: mesajı görüntüle
    kaç senedir asp kullanıyorum. bilmiyordum o zaman klasik asp'de de url seo yapılır bu şekilde gerek kalmadı php öğrenmeye. Teşekkürler paylaşım için.
    İşinizi hızlandıralım ve size bir form elemanı da hazırlayalım. Sayfa başlıklarınızı oluştururken wordpresslerdeki gibi seourlinizde otomatik oluşsun.

    <script type="text/javascript">
    $(document).ready(function(){
        $("#baslik").keyup(function() {
            clearInput($(this).attr('id'));
        });
        $("#baslik").focusout(function() {
            clearInput($(this).attr('id'));
        });
     
    });
        function clearInput(id) {
            var charMap = {Ç:'c',Ö:'o',Ş:'s',İ:'i',I:'i',Ü:'u',Ğ:'g',ç:'c',ö:'o',ş:'s',ı:'i',ü:'u',ğ:'g'};
            var str = $("#" + id).val();
            str_array = str.split('');
            for(var i=0, len = str_array.length; i < len; i++) {
                str_array[i] = charMap[ str_array[i] ] || str_array[i];
            }
            str = str_array.join('');
            var clearStr = str.replace(/ /gi,"-").replace(/--/gi,"-").replace(/[^a-z0-9-.çöşüğı]/gi,"").replace("--","-").toLowerCase()
            $("#baslik2, .clearme").val(clearStr);
        }
    </script>
     <input type="text" id="baslik" name="baslikadi" value="">
    <input type="text" name="seourl" id="baslik2"  value="" >
    Ayrıca ajax ile input içine girilen değeri veritabanında seourl yi kontrol eden bir kontrol asp sayfasına istek gönderirsen anlık olarak oluşturduğun urlnin veritabanında daha önce kayıtlı olup olmadığını da görebilirsin.
  • 07-03-2024, 12:47:52
    #8
    teriyaki adlı üyeden alıntı: mesajı görüntüle
    İşinizi hızlandıralım ve size bir form elemanı da hazırlayalım. Sayfa başlıklarınızı oluştururken wordpresslerdeki gibi seourlinizde otomatik oluşsun.

    <script type="text/javascript">
    $(document).ready(function(){
        $("#baslik").keyup(function() {
            clearInput($(this).attr('id'));
        });
        $("#baslik").focusout(function() {
            clearInput($(this).attr('id'));
        });
     
    });
        function clearInput(id) {
            var charMap = {Ç:'c',Ö:'o',Ş:'s',İ:'i',I:'i',Ü:'u',Ğ:'g',ç:'c',ö:'o',ş:'s',ı:'i',ü:'u',ğ:'g'};
            var str = $("#" + id).val();
            str_array = str.split('');
            for(var i=0, len = str_array.length; i < len; i++) {
                str_array[i] = charMap[ str_array[i] ] || str_array[i];
            }
            str = str_array.join('');
            var clearStr = str.replace(/ /gi,"-").replace(/--/gi,"-").replace(/[^a-z0-9-.çöşüğı]/gi,"").replace("--","-").toLowerCase()
            $("#baslik2, .clearme").val(clearStr);
        }
    </script>
     <input type="text" id="baslik" name="baslikadi" value="">
    <input type="text" name="seourl" id="baslik2"  value="" >
    Ayrıca ajax ile input içine girilen değeri veritabanında seourl yi kontrol eden bir kontrol asp sayfasına istek gönderirsen anlık olarak oluşturduğun urlnin veritabanında daha önce kayıtlı olup olmadığını da görebilirsin.
    İçimi okudun valla ben aşağıdaki gibi kullanmaya başladım. dediğin gibi klasik linklerden vazgeçmek lazım.

    web.config 'e böyle birşey yazdım
     <match url="^(.+)/([^/.]+)/?$" />
    <action type="Rewrite" url="{R:1}/{R:2}.asp" />
    http://domain.com/haber.asp?id=1
    
    yerine bu şekilde çalışıyor.
    
    http://domain.com/haber/?id=1
    :
    Bunu yazınca:
    http://domain.com/haber/?seourl=Zafer partisi İstanbul Adayını tanıttı. Türkeş'in son ülke ocakları başkanı Azmi Karamahmutoğlu İstanbul belediye başkan adayı
    
    Bu şekilde çeviriyor.
    http://domain.com/haber/?seourl=zafer-partisi-i̇stanbul-adayini-tanitti-turkesin-son-ulke-ocaklari-baskani-azmi-karamahmutoglu-i̇stanbul-belediye-baskan-adayi
    
    Şimdi şu ?seourl='den de kurtulmaya çalışıyorum. Son istediğim bu şekilde olsun.
    http://domain.com/haber/zafer-partisi-i̇stanbul-adayini-tanitti-turkesin-son-ulke-ocaklari-baskani-azmi-karamahmutoglu-i̇stanbul-belediye-baskan-adayi
    Böyle bir kod bloğunu deneyeceğim şimdi olucak galiba.
    <rule name="Rewrite haber.asp" stopProcessing="true">          <match url="^haber/([^/]+)/?$" />          <action type="Rewrite" url="haber.asp?seourl={R:1}" />        </rule>
  • 07-03-2024, 20:36:59
    #9
    Misafir adlı üyeden alıntı: mesajı görüntüle
    İçimi okudun valla ben aşağıdaki gibi kullanmaya başladım. dediğin gibi klasik linklerden vazgeçmek lazım.

    web.config 'e böyle birşey yazdım
     <match url="^(.+)/([^/.]+)/?$" />
    <action type="Rewrite" url="{R:1}/{R:2}.asp" />
    http://domain.com/haber.asp?id=1
    
    yerine bu şekilde çalışıyor.
    
    http://domain.com/haber/?id=1
    :
    Bunu yazınca:
    http://domain.com/haber/?seourl=Zafer partisi İstanbul Adayını tanıttı. Türkeş'in son ülke ocakları başkanı Azmi Karamahmutoğlu İstanbul belediye başkan adayı
    
    Bu şekilde çeviriyor.
    http://domain.com/haber/?seourl=zafer-partisi-i̇stanbul-adayini-tanitti-turkesin-son-ulke-ocaklari-baskani-azmi-karamahmutoglu-i̇stanbul-belediye-baskan-adayi
    
    Şimdi şu ?seourl='den de kurtulmaya çalışıyorum. Son istediğim bu şekilde olsun.
    http://domain.com/haber/zafer-partisi-i̇stanbul-adayini-tanitti-turkesin-son-ulke-ocaklari-baskani-azmi-karamahmutoglu-i̇stanbul-belediye-baskan-adayi
    Böyle bir kod bloğunu deneyeceğim şimdi olucak galiba.
    <rule name="Rewrite haber.asp" stopProcessing="true">          <match url="^haber/([^/]+)/?$" />          <action type="Rewrite" url="haber.asp?seourl={R:1}" />        </rule>

    Haber.asp sayfanda id'ye göre haberleri çekmen daha iyi olur. Haber başlıklarını,
     <rule name="habercek" stopProcessing="true">
     <match url="^(.*)-h([0-9]+).html"/>
     <action type="Rewrite" url="haber.asp?id={R:2}" />
    Yukarıdaki match'e göre düzenlersen aşağıdaki bağlantı çalışır.

    domain.com/zafer-partisi-i̇stanbul-adayini-tanitti-h65465465.html
    yukarıdaki düzene göre haber içeriklerinde seourl kullanmana gerek olmaz onun yerine haber başlığını kullanabilirsin. Onuda replace ederek türkçe karakterleri ingilizceye çevirir boşluklarıda (-) işareti yaparsın. Aşağıda cevir adında bir replace fonksiyonun olduğu varsayıldı. Nerede kullanacaksan onun öncesinde fonksiyonunu çalıştıman gerek. genelde sayfa başında #include edilir

    sayfa içlerinde linklerini de şu şekilde düzenlersin.

    <a href="/<%response.write ""&cevir(degisken("baslik"))&""%>-h<%=degisken("id")%>.html"><%=degisken("baslik")%></a>
    Ayrıca sana birde kategori sayfası lazım seourl veya baslik replace hangisi ile kullanırsan kullan. örnek;

    <rule name="katcek" stopProcessing="true">
     <match url="^(.*)-haberleri"/>
     <action type="Rewrite" url="/kategori.asp?seourl={R:1}" />
     </rule>
    çıktısı : domain.com/asayis-haberleri

    Unutmadan Önemli Not: haber.asp ve kategori.asp sayfalarında mutlaka canonical url kullanmalısın.