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....
ASP URL Rewrite (Yardımcı Olacak bir dost)
9
●386
- 10-02-2024, 15:19:23
- 13-02-2024, 01:26:43
<?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:20Teşekkür ederim. Hemen deneyeceğim.teriyaki adlı üyeden alıntı: mesajı görüntüle
- 13-02-2024, 20:01:31Nası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.
- 03-03-2024, 12:39:16kaç 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.teriyaki adlı üyeden alıntı: mesajı görüntüle
- 06-03-2024, 10:01:28İş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.Misafir adlı üyeden alıntı: mesajı görüntüle
<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İçimi okudun valla ben aşağıdaki gibi kullanmaya başladım. dediğin gibi klasik linklerden vazgeçmek lazım.teriyaki adlı üyeden alıntı: mesajı görüntüle
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:59Misafir adlı üyeden alıntı: mesajı görüntüle
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.