如果用户访问了针对ajax请求的页面,请加载主页面?

时间:2010-03-18 23:37:28

标签: jquery html ajax

我在一个简单的网站上使用jQuery,并有一个主页'index.html',它可以通过jQuery ajax请求加载一些内容(例如'info1.html'或'info2.html'),并显示结果这些请求位于'index.html'页面中的元素内。

如果用户以某种方式访问​​直接说'info1.html',他们是一种重定向或加载主'index.html'页面的方法吗? (或者这类事情的最佳做法)因为Google正在索引用于ajax请求的所有小html文件,有时用户可以通过这些页面点击进入该网站。

感谢。

4 个答案:

答案 0 :(得分:5)

解决方法1:
因为jquery默认会选择body标签内的内容,所以你可以在head元素中添加一个脚本来将你重定向到主页面或一个元标记(更正确),如Daniel所述。

解决方法2:
如果您的ajaxed文件位于文件夹中,您可以使用robots.txt文件并指示Google不对这些文件夹中的网页编制索引..

或者您可以直接从这些页面内部进行操作(查看http://en.wikipedia.org/wiki/Noindex

答案 1 :(得分:3)

您可能想要使用元刷新标记:

<html>
<head>
    <meta http-equiv="refresh" content="0; url=http://mydomain.com/main.html">
</head>
<body>
    <div>
        <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed 
        ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad 
        eleifend option congue nihil imperdiet doming id quod mazim.</p>
    </div>
</body>
</html>

答案 2 :(得分:1)

您可以在请求info1.html和info2.html时发送参数。 例如:

$.ajax({
                type: "POST",
                url: "info1.html",
                data:myParameter=1,
                success: function(html){
                    .........
                }
            });

然后在info1.html中检查myParameter是否存在以及它是否等于1。 如果两个条件都为真,则可以显示页面。如果不满足条件,您可以使用元标记或javascript重定向用户。因此,如果用户直接在网址中键入info1.html,他将被重定向。为此,您需要一个服务器端技术,如PHP。所以你会使用info1.php和info2.php

答案 3 :(得分:0)

我喜欢Gaby的解决方法,我想添加第三个:

将您的信息替换为XML而非HTML。

但是如果你想保留html,你不一定需要服务器端技术来重定向页面访问, 您可以使用java脚本中的window.onload事件来执行此操作:

window.onload = function() {window.location.href = 'http://www.google.com';}