2
A
回答
5
protected void Application_BeginRequest(object sender, EventArgs e)
{
// Do Not Allow URL to end in trailing slash
string url = HttpContext.Current.Request.Url.AbsolutePath;
if (string.IsNullOrEmpty(url)) return;
string lastChar = url[url.Length-1].ToString();
if (lastChar == "/" || lastChar == "\\")
{
url = url.Substring(0, url.Length - 1);
Response.Clear();
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", url);
Response.End();
}
}
+2
如果你在localhost中測試,確保使用if(string.IsNullOrEmpty(url)|| url.Length == 1)return;這是因爲第一個url只是「/」 – danpop 2012-12-20 12:47:32
0
使用的HttpContext.Current.Request
擴展方法使得這種可重複使用其他類似的問題,如重新定向,以避免重複內容的網址爲第1頁:
public static class HttpRequestExtensions
{
public static String RemoveTrailingChars(this HttpRequest request, int charsToRemove)
{
// Reconstruct the url including any query string parameters
String url = (request.Url.Scheme + "://" + request.Url.Authority + request.Url.AbsolutePath);
return (url.Length > charsToRemove ? url.Substring(0, url.Length - charsToRemove) : url) + request.Url.Query;
}
}
這可以被稱爲需要:
protected void Application_BeginRequest(Object sender, EventArgs e)
{
String requestedUrl = HttpContext.Current.Request.Url.AbsolutePath;
// If url ends with /1 we're a page 1, and don't need (shouldn't have) the page number
if (requestedUrl.EndsWith("/1"))
Response.RedirectPermanent(Request.RemoveTrailingChars(2));
// If url ends with/redirect to the URL without the/
if (requestedUrl.EndsWith("/") && requestedUrl.Length > 1)
Response.RedirectPermanent(Request.RemoveTrailingChars(1));
}
相關問題
- 1. 從URL中刪除拖尾斜槓
- 2. Htaccess重寫刪除尾部斜槓
- 3. IIS重寫規則刪除斜槓
- 4. htaccess刪除尾部斜槓
- 5. 刪除尾部斜槓htaccess
- 6. IIS 7.5:刪除尾部斜槓不起作用
- 7. Nginx重寫無尾斜槓
- 8. 重寫文件夾並刪除末尾的斜槓
- 9. Apache URL重寫 - 刪除僅從基址的尾部斜槓
- 10. 的mod_rewrite刪除尾隨斜槓Laravel
- 11. 用htaccess刪除尾部斜槓
- 12. 用mod_rewrite刪除尾部斜槓
- 13. 添加尾部斜槓並刪除.htaccess
- 14. SharePoint刪除URL中的尾部斜槓
- 15. 從批處理文件輸入中刪除拖尾斜槓
- 16. 刪除Wordpress slug的尾部斜槓
- 17. 使用mod_rewrite重寫斜槓
- 18. 的.htaccess重寫部隊尾隨斜槓
- 19. 重寫規則沒有結尾斜槓?
- 20. 重寫沒有結尾斜槓的URL?
- 21. .htaccess文件Mod_rewrite - 刪除擴展名並刪除尾部斜槓
- 22. 在Mod_rewrite中添加拖尾斜槓並在虛擬目錄中重定向非拖尾斜槓
- 23. RewriteRule刪除所有斜槓
- 24. 拖尾斜槓開頭的www
- 25. 刪除反斜槓
- 26. IIS URL重寫強制執行尾隨正向斜槓404不工作404
- 27. 在url結尾處刪除尾部斜槓
- 28. Bootstrap:breadcrumb刪除斜槓?
- 29. mod刪除尾部斜槓不起作用
- 30. htaccess - URL重寫 - 刪除斜槓,但不是從文件
有趣的是,如果你在這裏搜索「url trailing slash」(在右上角的搜索框中輸入,沒有引號),一半的人想刪除斜線,一半的人w螞蟻添加它。 – DOK 2012-01-31 16:20:36