哈希导航URL构建
hash navigation URL construction
设location.href
为http:/domain.com/en/
。
点击后,我希望它是http://domain.com/en/#opened-File.html/1
这样我就知道我需要的URL,所以如果用户复制并共享这个URL,我就是在做:
$(document).ready(function(){
var info = window.location.hash.match(/^#([^'/]*)'/([^-]*)-(.*)$/),
url="", nivel="", seccion="";
if (info) {
url = info[1];
nivel = info[3];
seccion = info[2];
location.href = url;
}
}
这工作得很好,但我的问题是:
- 这是一个好方法吗?
- 这是seo友好吗?
- 你会有不同的做法吗?
与
配合使用$('nav a').each(function(){
if(!$(this).hasClass('enlaceAnulado')){
/*Recopilamos*/
var href = $(this).attr('href');
var id = $(this).attr('id');
var parts = id.split("_");
var seccion = parts[0];
var nivel = parseInt(parts[1])+1;
/*Quitamos el enlace*/
$(this).attr('href','javascript:void(0)');
/*Guardamos la información.*/
$(this).data('hrefnot',href);
$(this).data('nivel',nivel);
$(this).data('seccion',seccion);
$(this).addClass('enlaceAnulado');
}
});
所以链接是静态的,但我这样做是为了提高用户体验和通过ajax加载内容
搜索引擎将您的页面内容编入索引,就好像url在哈希之后没有任何内容一样。哈希导航仅用于浏览器维护导航历史记录。您应该始终将要编入索引的内容设置为静态。
这是一个好方法吗?
我的第一倾向是认为这是一个很好的工作为服务器端(php, python, asp.net, apache重写,等等)
这是seo友好的吗?
我会担心散列,而不是使用更好的Url实践。
你会做不同的事吗?
我宁愿让我的服务器解析(mod重写等)Url而不是javascript。
我想对Nikita Volkov的回答补充如下:
搜索爬虫通常不运行JavaScript代码(尽管Google正试图改变这一点)。这意味着使用JavaScript将用户重定向到静态页面,就像您正在做的那样:
location.href = url;
…这是行不通的
如果你想让URL的哈希标签更seo友好,你必须做它的服务器端
相关文章:
- 为什么当我尝试为iframe-src属性构建URL时,AngularJS会抛出错误
- 使用skel框架构建的响应式网站只有在使用漂亮的URL时才能应用css
- 使用数组参数构建URL
- 在 AngularJS 配置中构建动态模板 URL
- 如何基于下拉选择构建 URL 查询字符串
- 你能在 Restangular 中构建一个包含多个变量的 URL 吗?
- 我应该如何构建我的 AngularJS 路由来处理 URL 重写和页面刷新
- 使用 Angular 提供程序构建 OData $filter URL
- 从两个表单字段构建 URL
- 打开对话框,其中包含在使用 magnificPopup 构建的弹出窗口中跟随 URL 返回的结果
- 用于开发和生产构建的带有Webpack的角度应用程序API URL配置
- 使用JavaScript为MVC应用程序构建相对URL
- 使用JS逻辑从自定义选项构建URL链接
- 使用ajax构建asp.net mvc url
- 难以构建绝对URL
- 如何在HTML/JavaScript中构建基于用户输入(文本框/下拉列表)的网站URL
- 哈希导航URL构建
- 如何在构建脚本中添加CDN url以要求路径
- 用javascript构建的url打开新窗口
- 在Jade模板中构建url编码