Bunlar, her projeye başladığım standart yeniden yazma kurallarıdır. Ben tüm sayfalar için sadece temiz URL'ler dışarı ayrıştırmak gerekiyor
<rewrite>
<rules>
<rule name="Rewrite default to aspx" stopProcessing="true">
<match url="^$" ignoreCase="false" />
<action type="Rewrite" url="default.aspx" />
</rule>
<rule name="Rewrite page to aspx" stopProcessing="true">
<match url="^([a-z0-9/]+)$" ignoreCase="false" />
<action type="Rewrite" url="{R:1}.aspx" />
</rule>
</rules>
</rewrite>
Sayfalar (örneğin ilk kural www.example.com/about ve ikinci kural www.example.com/product/123 için çalışır) kullanın kimlik (bu durumda sayı için) ve cepheye benzer bir kural eklemek sorgu dizesi ekleyin:
<rule name="Rewrite Product ID" stopProcessing="true">
<match url="^product/([0-9]+)$" ignoreCase="false"/>
<action type="Rewrite" url="product.aspx?id={R:1}"/>
</rule>
Eğer ignoreCase = "true" set URL içinde alt ve üst harf kullanmak istiyorsanız
İkinci soruya cevap vermek için düzenleyin, ayrıca bir bonus
Bu kural temiz URL'ye aspx sayfasını yönlendirir
:
<rule name="Redirect to clean URL" stopProcessing="true">
<match url="^([a-z0-9/]+).aspx$" ignoreCase="true"/>
<action type="Redirect" url="{R:1}"/>
</rule>
= url değiştir "{R: 1}" ile url = "{ToLower: {R: 1}}" URL'sini değiştirmek için küçük harfle Bunu neden yapmak istediğinize bakın.
Ayrıca, Form eylemini güncellemek iyi bir fikirdir, böylece posta arkaları çirkin URL'ye geri dönmez. Bu çalışması gerekir IIS 7.5 veya daha yeni kullanma:
if (!String.IsNullOrEmpty(Request.RawUrl))
form1.Action = Request.RawUrl;
veya IIS 7 için
:
if (!String.IsNullOrEmpty(Context.Request.ServerVariables["HTTP_X_ORIGINAL_URL"]))
form1.Action = Context.Request.ServerVariables["HTTP_X_ORIGINAL_URL"];
Bir şey daha akılda tutulması gereken ... hepsi URL'ler küçük harf tutmak iyi bir fikirdir. URL'deki alt/büyük harf karakterlerini karıştırmak, SEO/Google için yinelenen içerik sorunları oluşturur. Örneğin, website.com/About ve website.com/about aynı sayfayı yükleyecek, ancak Google bunları iki ayrı sayfa olarak dizinleyecektir.
Siz adamsınız! Nasıl yapılacağını biliyorsanız, sadece bir şey, şimdi onları toex URL'ye göndermek gerekir ve onlar görünmeden aspx ekler, ancak .aspx'e giderlerse, .aspx'i kaldırabilecek midir? – Danpe
Cevabınızı ikinci sorunuzu içerecek şekilde güncelledik. – Serge
URL'lerim için bunu projelerimden birinde kullanmaya çalıştım. kaldırma uzatma mükemmel bir şekilde bozulur. Ancak, Ajax'ın pop-up'ları ile ilgili sorunlar alıyorum. benim Modal Popup genişletici ve takvim genişletici extenders.i bu konuda bir bilet yükseltmek. ama şimdiye kadar cevap yok. http://stackoverflow.com/questions/33243017/url-rewrite-create-compactible-issues-with-ajaxtoolkit – Lemdor