У меня есть 2 домена, которые разрешают использовать мой веб-сайт www.mysite.com и www.mysitecommonmisspelling.com, а также IP-адрес. У меня есть некоторый код в моем файле Global.asax, который был предназначен, чтобы заставить всех пользователей и поисковых роботов, чтобы использовать только основной домен, например, так:ASP.NET - Возможно ли, чтобы клиенты отключили/не обратили внимание на 301 переадресацию?
Protected Sub Application_BeginRequest(ByVal sender As Object, ByVal e As System.EventArgs)
'If the domain isn't the correct top level domain for this environment,
'we want to do a 301 redirect to tell the search engines that this is not the right domain to
'index.
Dim Host As String = Me.EnvironmentHost
Dim CurrentHost As String = Request.Url.DnsSafeHost
If CurrentHost.ToLower <> Host.ToLower Then
Dim Url As String = Request.Url.AbsoluteUri
'The AbsolutUri property returns the Default.aspx whether it was actually specified
'in the URL or not. Since our server is set up to respond to this as the default page,
'we can safely remove it from the URL if it actually exists. We don't want Default.aspx
'indexed anyway if possible.
Url = Url.Replace("Default.aspx", "")
Url = Url.Replace("default.aspx", "")
'Replace the current host with the environment host
Url = Url.Replace(CurrentHost, Host)
Response.Clear()
Response.StatusCode = 301
Response.Status = "301 Moved Permanently"
Response.AddHeader("Location", Url)
Response.End()
End If
End Sub
я проверил и Google не проиндексированы все страницы www.mysitecommonmisspelling. com, поэтому они, по-видимому, уважают 301. Однако несколько дней назад у нас был клиент на нашем сайте, который получил бесплатную доставку, потому что код лицензии, зарегистрированный только для www.mysite.com, потерпел неудачу (другими словами, браузер был доступ к www.mysitecommonmisspelling.com). Раньше у нас были проблемы с сторонним компонентом доставки, так как пользователи имели доступ к сайту с использованием IP-адреса.
В любом случае мы не хотим, чтобы пользователи имели доступ к сайту без правильного домена, поэтому сертификат SSL не жалуется.
Я искал способ отключить 301 переадресацию в IE7, но, похоже, не существует способа. Итак, мне интересно, есть ли какие-либо браузеры, которые могут отключить 301, и если да, то какие способы обхода можно установить, чтобы все браузеры на моем сайте переходили в основной домен, www.mysite.com?
Спасибо. Фактически, я использую IIS6. Я рассмотрю разбивку на два разных сайта. Я подумал о другом потенциальном сценарии: есть ли условие, при котором Application_BeginRequest не срабатывает? – NightOwl888
В MSDN: «Событие BeginRequest сигнализирует о создании любого нового запроса. Это событие всегда поднимается и всегда является первым событием, которое возникает во время обработки запроса». Думаю, это отвечает на этот вопрос - хотя я нашел много сообщений от людей, жалующихся на то, что BeginRequest не срабатывал, и EndRequst сделал. Я попытаюсь поместить этот код в подпроцедуру, а затем вызывать его из обоих мест - попытка 301 в BeginRequest, и если это не удается, выполните 302 с той же логикой сравнения в EndRequest. Если бы прокси установил URL-адрес, и он не совпал, мой код будет работать ... – NightOwl888