Chúng tôi có một trang web tại domain.com, cũng có thể truy cập thông qua mục CNAME cho www.domain.com trỏ ngược lại domain.com. Chúng tôi muốn tất cả khách truy cập vào www.domain.com được chuyển hướng đến domain.com bằng cách sử dụng chuyển hướng 301. Cách tốt nhất để thực hiện điều này trong asp.net MVC là gì? Trong global.asax?Asp.net mvc 301 chuyển hướng từ www.domain.com đến domain.com
Trả lời
Tôi chấp nhận rằng làm điều này ở cấp ứng dụng là không mong muốn theo nhận xét cho câu hỏi.
Cài đặt tính năng Chuyển hướng HTTP trong IIS7 là cách tốt nhất để thực hiện việc này.
Trong trường hợp của chúng tôi, các ràng buộc khác buộc chúng tôi thực hiện việc này ở cấp ứng dụng.
Dưới đây là đoạn code mà chúng tôi sử dụng trong global.asax để thực hiện chuyển hướng:
private static readonly Regex wwwRegex =
new Regex(@"www\.(?<mainDomain>.*)",
RegexOptions.Compiled
| RegexOptions.IgnoreCase
| RegexOptions.Singleline);
protected void Application_BeginRequest(Object sender, EventArgs e)
{
string hostName = Request.Headers["x-forwarded-host"];
hostName = string.IsNullOrEmpty(hostName) ? Request.Url.Host : hostName;
Match match = wwwRegex.Match(hostName);
if (match.Success)
{
string mainDomain = match.Groups["mainDomain"].Value;
var builder=new UriBuilder(Request.Url)
{
Host = mainDomain
};
string redirectUrl = builder.Uri.ToString();
Response.Clear();
Response.StatusCode = 301;
Response.StatusDescription = "Moved Permanently";
Response.AddHeader("Location", redirectUrl);
Response.End();
}
}
cung cấp cho tôi: Tên nhóm không hợp lệ: Tên nhóm phải bắt đầu với một ký tự từ –
Điều này bây giờ đã được thực hiện dễ dàng hơn bằng cách sử dụng UrlRewrite có thể được thêm vào web.config của trang web. Chỉ muốn đề cập đến nó ở đây. http://stackoverflow.com/a/10193142 – gldraphael
thích hợp nhất cho SEO với 'www' hoặc không có' www' vì [this] (http://stackoverflow.com/q/15951963/2218697) bài đăng nói với? – stom
- 1. Cách chuyển hướng từ www.domain.com sang domain.com?
- 2. Chuyển hướng DNS domain.com đến www.domain.com
- 3. 301 Chuyển hướng đến IIS
- 4. Chuyển hướng đến trang 404 lập trình bằng asp.net MVC
- 5. Chuyển hướng 301 trong asp.net 4.0
- 6. Chuyển hướng 301 và chuyển hướng 307
- 7. Chuyển hướng ASP.NET MVC từ thuộc tính
- 8. Chuyển hướng đến MVC ActionResult từ FileResult
- 9. Cú pháp cho chuyển hướng 301 của www sang không www bằng httpd.conf
- 10. ASP.Net MVC Hướng đến Username
- 11. Cách chuyển hướng 301 tất cả các trang đến cùng một trang trên tên miền mới
- 12. ASP.NET MVC 3 - chuyển hướng đến một hành động khác
- 13. ASP.Net MVC 3.0 Ajax.BeginForm đang chuyển hướng đến một Trang?
- 14. MVC chuyển hướng để mặc định đường
- 15. Làm cách nào để thực hiện tuyến chuyển hướng 301 vĩnh viễn trong ASP.Net MVC
- 16. Tránh chuyển hướng 301 caching
- 17. Chuyển hướng 301 trên AJAX - được chuyển hướng?
- 18. Chuyển hướng QNetworkReply và 301
- 19. RewriteRule cho chuyển hướng 301
- 20. Chuyển hướng ASP.NET MVC với kiểu
- 21. Thiết lập Amazon Route 53 và 301 Thiết lập chuyển hướng
- 22. Địa chỉ chuyển hướng 301 301 Định dạng URI
- 23. Vấn đề chuyển hướng jQuery Mobile 301
- 24. Chuyển hướng đến URI bên ngoài từ bộ điều khiển ASP.NET MVC
- 25. Chuyển hướng ASP.NET MVC sau khi đăng nhập vào trang mà người dùng đến từ
- 26. Không thể xóa chuyển hướng 301
- 27. ASP.NET MVC - Cách chuyển hướng an toàn?
- 28. Từ Monorail đến ASP.Net MVC
- 29. Chuyển hướng đến một hành động từ global.asax - mvc
- 30. 301/302 chuyển hướng từ gốc cắt xuống đến url trang chủ cụ thể
Cách đơn giản nhất là để tạo ra một trang web trong IIS để xử lý các chuyển hướng. Bạn sẽ không cần mã - chuyển hướng IIS có thể tự động xử lý nó. –
Thật vậy. IIS là con đường để đi. Bạn không thực sự muốn kết hợp ứng dụng của mình với loại điều này khi IIS thực hiện nó miễn phí. IIS7 là cược tốt nhất của bạn ở đây. –
Vấn đề ở đây là trang web nằm trong một trang trại ngồi phía sau bộ cân bằng tải mà chúng tôi có ít quyền kiểm soát. Máy chủ phân giải địa chỉ IP nội bộ của máy chủ và tên máy chủ ban đầu được đóng gói lại trong tiêu đề "x-forwarded-host". Theo tôi có thể thấy, quy tắc này sử dụng tính năng Chuyển hướng HTTP IIS7. – spender