所以我最終作出一個可怕的修復,直到我得到一個更好的「答案」。它是這樣的:
var culture = HttpContext.Current.Request.Url.AbsolutePath.Split('/')[1];
if (culture != "en" && culture != "da")
{
var shortCulture = "en";
var languages = HttpContext.Current.Request.UserLanguages;
//Just making sure
if (languages != null && languages.Length > 0)
{
shortCulture = languages[0].Trim().Substring(0, 2);
//If the culture is something like fr (French), we default back to en
if (shortCulture != "en" && shortCulture != "da")
{
shortCulture = "en";
}
}
Uri uri = new Uri(HttpContext.Current.Request.Url.AbsoluteUri);
var url = uri.Scheme + Uri.SchemeDelimiter + uri.Host;
url += "/" + shortCulture + HttpContext.Current.Request.Url.AbsolutePath;
Response.RedirectPermanent(url);
}
所以基本上,如果我嘗試要求:
https://website.com/news
http://website.com/news
website.com/news
http://website.com/news/some-news-article/
etc. etc.
會重定向。例如:
https://website.com/news/
|
V
https://website.com/en/news/
(這取決於您的區域設置)。
太可怕了,太可怕了,太可怕了。我很慚愧。
是/新聞是真實的網頁,還是所有網站內容在/ en和/ da下面? – Tim
@Tim所有頁面都在文化之下。 – MortenMoulder
還有一個簡單的問題,您現在的解決方案代碼在哪裏運行?它是一個ContentFinder或其他東西? – Tim