Paylaşımın için teşekkürler. Biraz daha gelişmiş bir metodda ben paylaşayım.
public static string ToSeoUrl(this string url)
{
url = url.Replace("ş", "s");
url = url.Replace("Ş", "s");
url = url.Replace("İ", "i");
url = url.Replace("I", "i");
url = url.Replace("ı", "i");
url = url.Replace("ö", "o");
url = url.Replace("Ö", "o");
url = url.Replace("ü", "u");
url = url.Replace("Ü", "u");
url = url.Replace("Ç", "c");
url = url.Replace("ç", "c");
url = url.Replace("ğ", "g");
url = url.Replace("Ğ", "g");
url = url.Replace(" ", "-");
url = url.Replace("---", "-");
url = url.Replace("?", "");
url = url.Replace("/", "");
url = url.Replace(".", "");
url = url.Replace("'", "");
url = url.Replace("#", "");
url = url.Replace("%", "");
url = url.Replace("&", "");
url = url.Replace("*", "");
url = url.Replace("!", "");
url = url.Replace("@", "");
url = url.Replace("+", "");
url = url.ToLower();
url = url.Trim();
// tüm harfleri küçült
string encodedUrl = (url ?? "").ToLower();
// & ile " " yer değiştirme
encodedUrl = Regex.Replace(encodedUrl, @"\&+", "and");
// " " karakterlerini silme
encodedUrl = encodedUrl.Replace("'", "");
// geçersiz karakterleri sil
encodedUrl = Regex.Replace(encodedUrl, @"[^a-z0-9]", "-");
// tekrar edenleri sil
encodedUrl = Regex.Replace(encodedUrl, @"-+", "-");
// karakterlerin arasına tire koy
encodedUrl = encodedUrl.Trim('-');
return encodedUrl;
}