如何判断用户是否正在访问“/Default.aspx”或只是“/”
我正在写我的Global.asax.cs的Application_BeginRequest部分。
出于搜索引擎优化的目的,我正在尝试重定向正在查看的用户:
https://www.example.com/Default.aspx
至:
https://www.example.com/
我的问题是:
如何判断用户正在查看哪些内容? 我一直在用:
HttpContext.Current.Request.Url.*
但无论我访问哪一个,所有参数都是相同的。
如果它只是你关注的SEO,那么你可以使用规范的“标签”。
如果将其放在Default.aspx页面中:
谷歌将始终索引
https://www.mysite.com/Default.aspx
如
https://www.mysite.com/
防止两个页面都被编入索引并在搜索结果中竞争。
您可以在此处阅读更多内容: http : //googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html
您可以使用以下命令获取在用户浏览器中输入的路径:
string path = Request.RawUrl;
MSDN
我很确定这个特定的重定向发生在IIS级别而不是你的应用程序逻辑中,或者关闭IIS中的默认页面内容?
如果您使用的是IIS 7.x,则应该查看本教程: http://weblogs.asp.net/scottgu / ….
它解释了如何为SEO设置重定向。
如果你不能在web.config中使用
标签,这篇文章应该有所帮助: https://stackoverflow.com/questions/363231 / …
要求:
https://domain.com/
当从HttpModule
的Begin_Request
事件引用时:
HttpContext.HttpRequest.Url.AbsolutePath == "/" ... Url.AbsoluteUri = "https://domain.com/" ... Url.LocalPath = "/"
如果您没有从Application_BeginRequest
看到这些值,则可能需要注册一个单独的HttpModule
。 Global.asax事件仅针对托管的HttpHandlers
调用,因此在IIS执行内部重定向(传输)到“/default.aspx”之后才可能调用它们。
您可能还需要在IIS中禁用默认文档处理,以使其在您感兴趣的方向上工作(大多数站点从/
向/default.aspx
重定向,而不是相反)。
编辑:另一个想法。 将新扩展注册为ASP.NET页面处理程序,使用构建提供程序(在web.config中) – 也许* .asph或类似的东西。 然后将现有的default.aspx
重命名为default.asph
。 接下来,将default.asph
添加到IIS中默认文件列表的顶部,替换default.aspx
。 创建一个新的default.aspx
文件,其后面代码中唯一的function是重定向到/
。 应该这样做。
如果您请求https://www.site.com/ ,它将在您的代码运行之前很久才会重定向到https://www.site.com/default.aspx (所有内容的浏览器都可以看到这一点!)。
我相信这意味着检查HTTP-Referer的值会告诉你你想知道什么。
如何获取HTTP Referer: 在ASP.NET中获取HTTP Referrer
现在,如果用户访问了https://www.site.com ,您的代码将看到https://www.site.com/default.aspx与https://www.site.com的 referer调用。 这并没有告诉你他们来自哪里,但它确实告诉你他们直接访问了网站。
您的优势在于,大多数搜索引擎都遵循重定向并抓取实际页面,因此引用值可用于判断用户是否来自搜索引擎。 但是,对于其他情况,您最好不要使用IIS日志。
请注意,由于ASP.NET重定向/到/default.aspx中的基础结构,您无法将/default.aspx重定向到/不创建无限循环。 如果你想直接服务,你将需要在IIS前面垫片。
你可以试试
HttpContext.Current.Request.Url.*
参数错误:
所以让你的网站访问者url:
Request.AppRelativeCurrentExecutionFilePath
了解更多信息:
https://msdn.microsoft.com/en-us/library/system.web.httprequest.apprelativecurrentexecutionfilepath.aspx
请提供更多信息,并尝试解决您的问题
Request.url将为您提供在浏览器窗口中打开的当前URL。 您可以使用它来编写您想要的代码。
您也可以使用iis执行此操作。 将Default.aspx设置为您的默认页面,每当有人打开您的网站时,地址将为www.yoursite.com
如果您试图隐藏用户当前的url,则不推荐使用,但您可以使用url重写iis
了解用户浏览器位置的最佳方法是通过javascript。
如果您想将所有人从Default.aspx重定向回www.mysite.com,您可以执行以下操作:
$(document).ready(function() { if(window.location.href == "https://www.mysite.com/Default.aspx") window.location.href = "https://www.mysite.com/" });
注意:这依赖于$(文档)的jquery,但是你明白了
使用路由和IIS重写模块的组合。 你可能需要调整它以适应尾部斜杠(如果你想要一个或不是)。 我的所有页面名称都是小写的。 使用此function可以确保为default.aspx页面提供一致的301永久重定向,并符合SEO最佳实践。
在Global.asax中:
<%@ Import Namespace="System.Web.Routing" %> <%@ Application Language="C#" %>
然后在你的web.config中:
如果您不熟悉路由,则可以通过以下链接访问主页:
上述就是C#学习教程:如何判断用户是否正在访问“/Default.aspx”或只是“/”分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
HOME
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1031963.html