V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zcl
V2EX  ›  问与答

ASP.NET静态后的重复网页内容肿么处理掉

  •  
  •   zcl · 2012-04-14 10:18:04 +08:00 · 4121 次点击
    这是一个创建于 4591 天前的主题,其中的信息可能已经有所发展或是发生改变。
    网站本来是已经静态化了,但是老大要求每个页面都要显示登录,注册一些动态的元素,程序员说静态页面搞不出这些动态的元素,然后又启用所有动态页面.aspx才能显示登录、注册这些东西。

    结果,网站的重复内容很多,每个页面都有相同的aspx,html内容页面,并且出现大量的404错误.html页面。肿么办呢?

    尝试的解决办法,301重定向。
    因为网站实在存在太多.aspx、.html页面重复,如果一个一个页面做301重定向是非常难完成的。请问,有没有简单的办法把所有重复的.html页面,全部做301重定向到对应的.aspx页面中?
    21 条回复    1970-01-01 08:00:00 +08:00
    zhuzhuor
        1
    zhuzhuor  
       2012-04-14 10:28:10 +08:00
    robots.txt ?
    zhuzhuor
        2
    zhuzhuor  
       2012-04-14 10:33:37 +08:00
    你不是说搜索引擎里的重复内容吧?robots指的是这个...
    你是问有啥同样内容的asp就把html的link改成asp的?
    估计写个小的脚本能很快搞定,看看每个html的link,如果有同名(?)的asp就把link改掉,然后删掉html?
    zcl
        3
    zcl  
    OP
       2012-04-14 10:36:03 +08:00
    robots.txt还不是要一个一个找出链接吗?不想把所有html页面都禁止啊!
    zcl
        4
    zcl  
    OP
       2012-04-14 10:40:10 +08:00
    @zhuzhuor 现在的问题是,每个aspx页面都有对应的html页面,这些对应的html链接有的可以正常显示,有的却显示404页面,这就是郁闷的问题了,如果所有对应的html都可以正常显示就不需要什么处理了。
    zcl
        5
    zcl  
    OP
       2012-04-14 10:44:23 +08:00
    @zhuzhuor 由于程序员不能在html页面显示登录、注册等一些动态元素,因而网站全部内部链接才启用.aspx。如果用户通过外链接(比如搜索引起结果,或者其它网站)访问这些静态的.html会看到一些404html页面,但是也有部分html页面显示正常。
    yangg
        6
    yangg  
       2012-04-14 10:54:01 +08:00
    不是太明白需求,貌似是要rewrite? html页面不存在的话,rewrite到对应的apsx?
    zcl
        7
    zcl  
    OP
       2012-04-14 11:01:36 +08:00
    @yangg 想实现html页面301跳转到对应的aspx页面,因为这两个格式链接页面内容重复了,而且有的html页面访问的话是404。
    zhuzhuor
        8
    zhuzhuor  
       2012-04-14 11:19:10 +08:00
    @zcl html都跳转到aspx了,还留着html干啥。全部删掉,链接全部替换呗

    不过话说回来,用ajax应该可以在静态页面上显示动态内容吧,登陆和注册貌似都行啊,后台只用实现一部分的动态功能就行
    qiayue
        9
    qiayue  
       2012-04-14 11:33:25 +08:00
    @zhuzhuor ajax+1
    zcl
        10
    zcl  
    OP
       2012-04-14 11:43:14 +08:00
    @zhuzhuor
    html都跳转到aspx做不到啊,是想实现所有html页面301跳转到对应的aspx页面,目前没有做到啊,比如:a.html 301跳→ a.aspx,b.html 301跳→ b.aspx。

    就是要想实现比如v2ex导航顶部,看到我们登录信息的用户名,每个页面都可以显示,老大就是要求这个,然后,程序员就把问题复杂化,搞成现在这样的结果,出现了大量的404html页面。
    gDD
        11
    gDD  
       2012-04-14 12:08:58 +08:00
    版本控制回去然后用Ajax。。。
    avatasia
        12
    avatasia  
       2012-04-14 12:10:57 +08:00
    很明显,你们不理解静态页,动态页,缓存这几个概念。
    这种情况你们不应该用静态页,要用动态页+缓存。
    zhuzhuor
        13
    zhuzhuor  
       2012-04-14 12:53:47 +08:00
    @zcl header 里面加<meta http-equiv="refresh" content="0; url=http://company.com/a.aspx">
    zcl
        14
    zcl  
    OP
       2012-04-14 14:05:04 +08:00
    @avatasia 没用都用了,现在是想办法解决了。就是想办法处理好这些重复的静态页面,不想直接删除,因为这些页面也存在很长时间了,也有不少外来链接什么的,感觉先做301跳转应该是不错的办法。
    zcl
        15
    zcl  
    OP
       2012-04-14 14:06:09 +08:00
    @gDD 嗯!估计是程序员实在水平不行,不然早用Ajax好多了。
    wingoo
        16
    wingoo  
       2012-04-14 14:10:05 +08:00
    如果只是显示登录信息,可以用ajax解决
    另外动态页面可以有局部缓存的,就是说除了登录信息外的其他信息,可以静态化,动态的登录信息用动态的方式实现
    gDD
        17
    gDD  
       2012-04-14 14:21:20 +08:00
    a.html -> a.aspx这种重定向很简单的啊,Google一搜就有了。
    zcl
        18
    zcl  
    OP
       2012-04-14 19:41:31 +08:00
    @gDD a.aspx这种重定向很简单的,但是当大量页面都要这样做的时候,就不简单了,你甚至找不到所有a.html页面。
    gDD
        19
    gDD  
       2012-04-14 19:44:52 +08:00
    @zcl 服务器的配置文件应该能用正则吧。把所有.html结尾的链接直接转到.aspx。
    thereisnoif
        20
    thereisnoif  
       2012-04-24 19:17:30 +08:00
    如果是IIS 7的话,可以使用Url Rewrite module,利用正则表达式规则;
    参考 http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module/
    binux
        21
    binux  
       2012-04-24 19:31:02 +08:00
    我觉得rewrite比301要好,保持地址不变,还是a.html。
    然后把a.html rewrite到a.aspx
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1132 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:46 · PVG 02:46 · LAX 10:46 · JFK 13:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.