哈希导航URL构建

hash navigation URL construction

本文关键字:构建 URL 导航 哈希      更新时间:2023-09-26

location.hrefhttp:/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友好,你必须做它的服务器端