Çözüldü HTML Uzantısını Kaldırmak

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Mesaj gönderimine kapalı.
Mümkün, bunun için MVC yazılım mimarisini kullanmanızı tavsiye ederim.
 
Evet, PHP kullanmanızı öneririm. Bu videodan başlayarak kısa bir sürede öğrenebilirsiniz.

Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
 
Aslında çok da zor olmayan basit bir iki işlem gerektiren bir durum. Bu durum bir nevi yönlendirme işidir. ASP.NET ile örnekleyecek olursak, mesela şu koda bakın:

Kod:
void Application_Start(object sender, EventArgs e)
        {
            RouteTable.Routes.Add("index", new Route("anasayfa", new PageRouteHandler("~/default.aspx")));
}

bu komut global.asax dosyasına yazılıyor. anasayfa komutu default.aspx sayfasına yönlendiriliyor. Yani size web adresinizi ve butonunuzu www.webadresiniz.com/anasayfa diye linklerseniz karşınıza default.aspx sayfası çıkacaktır. Veya sizin orneksayfa.html ile örnek verelim:

RouteTable.Routes.Add("index", new Route("Ornek", new PageRouteHandler("~/orneksayfa.html")));

Linkinizi Ornek diye girerseniz orneksayfa.html dosyası karşınıza çıkacaktır ve adresiniz de: www.siteniz.com/Ornek olacaktır.

Bu şeklin bir üst düzey karşılığı otomatik olarak gelen bir listenin linklerinin bu şekil linklenmesidir. Yani diyelim bir makale ve yazarlarının bulunduğu bir liste sayfaya yerleştirdiniz.

global.asax daki şekli şudur:

routes.MapPageRoute("Makale Detay(sadece isimdir)", "Makaleler", "~/makaledetay.aspx");

Diyelim bir gridviewden bu şekilde yönlendirme yapacaksınız:

<ItemTemplate>
                            <asp:HyperLink ID="makale" runat="server" NavigateUrl='<%# String.Format("/Makaleler?p={0}-{1}-{2}",(Eval("makaleid").ToString()),(Eval("makaleadi").ToString()) %>' Text='<%# Eval("makaleyazar") %>' ></asp:HyperLink>
                        </ItemTemplate>

burada 0 olan makeid, 1 olan makaleadi ve 2 olan da makaleyazarını linke çağıracak.. Şu şekilde olacak örnek: Makaleler?p=522-canlilarin-yasamlari-ahmetaydin

Son olarak yapılması gereken şeyler de var. mesela burada p= olayını makaledetay sayfasında QueryStringField="p"  şeklinde tanımlamanız gerekir. Bir diğer olay makale ismi, yazar ismi boşluklu ve türkçe karakterli olacağından bu bölümlerin süzgeçten geçirmeniz gerekir. Mesela:

Filtrele(Eval("makaleadi").ToString());

bunun kodlama tarafındaki karşılığı:

public static string Filtrele(string Text)
    {
        try
        {
            string strReturn = Text.Trim();
            strReturn = strReturn.Replace("ğ", "g");
            strReturn = strReturn.Replace("Ğ", "G");
            strReturn = strReturn.Replace("ü", "u");
            strReturn = strReturn.Replace("Ü", "U");
            strReturn = strReturn.Replace("ş", "s");
            strReturn = strReturn.Replace("Ş", "S");
            strReturn = strReturn.Replace("ı", "i");
            strReturn = strReturn.Replace("İ", "I");
            strReturn = strReturn.Replace("ö", "o");
            strReturn = strReturn.Replace("Ö", "O");
            strReturn = strReturn.Replace("ç", "c");
            strReturn = strReturn.Replace("Ç", "C");
            strReturn = strReturn.Replace("-", "+");
            strReturn = strReturn.Replace(" ", "+");
            strReturn = strReturn.Trim();
            strReturn = new System.Text.RegularExpressions.Regex("[^a-zA-Z0-9+]").Replace(strReturn, "");
            strReturn = strReturn.Trim();
            strReturn = strReturn.Replace("+", "-");
            return strReturn;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

Farklı yazım şekilleri, daha kolay yöntemleri de olabilir..
 
Son düzenleyen: Moderatör:
Neden bu kadar şey yapıldı anlayamadım ama eğer yazılım dilleriyle uzunca satır kodlarla uğraşmak istemiyorsanız htaccess dosyanız ile de bunu yapabilirsiniz. Aşağıdaki kod gibi gibi, kendine göre değiştirmen mümkün.
Kod:
RewriteRule ^(.+[^/])$ $1.html
 
Neden bu kadar şey yapıldı anlayamadım ama eğer yazılım dilleriyle uzunca satır kodlarla uğraşmak istemiyorsanız htaccess dosyanız ile de bunu yapabilirsiniz. Aşağıdaki kod gibi gibi, kendine göre değiştirmen mümkün.
Kod:
RewriteRule ^(.+[^/])$ $1.html
.htacces dosyamı düzenleyip verdiğiniz kodu ekledim fakat, bir değişiklik olmadı.

Evet, PHP kullanmanızı öneririm. Bu videodan başlayarak kısa bir sürede öğrenebilirsiniz.

Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
Hocam PHP dilini bilmiyorum ben okulda da ASP.NET yeni görmeye başladık. Video İngilizce bilmediğimden karışık geldi.

Sorunu şu şekilde @Erkan Çevik Hocamın verdiği kodlara ekleme yaparak hallettim.

Kod:
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^index.*$ index.html [NC]
RewriteRule ^index.*$ gizlemek istediğim linkler [NC]
Bu sorunla uğraşan arkadaşlar .htacces dosyasına ekleyerek bu şekilde halledebilirler.
 
Durum
Mesaj gönderimine kapalı.

Yeni konular

Geri
Yukarı