重定向到哈希URL

时间:2012-10-13 09:32:38

标签: jquery ajax wordpress redirect

我在wordpress上构建一个带有hashchange的网站,一切正常。它只是将single.php模板文件加载到div中。

问题是我仍然可以访问我的单个网址(http://www.mydomain.com/my-single-post)。由于它没有任何头部和样式标签,我不希望人们去那边。谷歌也选择了直接链接,因为我使用href属性将内容加载到div中。

所以我的问题是:

如果有人点击某个链接,请在论坛中http://www.mydomain.com/my-single-post说,是否可以立即将他重定向到http://www.mydomain.com/#my-single-post?我研究过它与.htaccess有关,但我也有Pages,我不想要页面名称的哈希值。

修改

我有一个小更新。如果此代码从url中删除hash-tag并重定向到非哈希url,那么如何将此代码反向?

var current_hash = location.hash;
        current_hash = current_hash.replace(/#/,'');
    if(current_hash.length>1){
        // we have something after the #. redirect as if the # wasn't there.
        window.location.href=current_hash;
    }

3 个答案:

答案 0 :(得分:1)

好的,经过一些试验&我自己管理错误了!

这就是我追求的目标:

  // If there's a hash in the URL, do nothing
  if(window.location.hash) {

  } else {
  // If there isn't a '#' sign in the URL, add one, and redirect to the hash URL.
    var path = window.location.pathname.split("/")[1];
     window.location.replace('http://' + top.location.host + '#' + path);
  }

也可能有其他方法可以做到这一点,即。不需要if / else语句,只需要检查是否有哈希值。

答案 1 :(得分:0)

我对Wordpress并不熟悉,但它是否附带内置工具,可以为您的帖子配置所需的URL格式?我的第一个地方就是那里,并在URL中设置符合您需要的格式和哈希符号。

你的另一种选择是维护你自己的htaccess,但是由于你的根目录有一些页面应该被重定向到带有哈希符号的URL,而有些页面不应该,你必须创建一个规则我担心每一页手动,从长远来看,这将是一个很难的维护。

我相信这就是Wordpress在幕后为你做的事情,这会更方便,但我不确定。

答案 2 :(得分:-1)

如果请求不是AJAX,您可以使用PHP标头在my-single-post页面上进行重定向。您也可以将get请求中的AJAX变量传递给my-single-post

<?php

if($_GET["ajaxVar"]!=1){
header("Location: http://www.mydomain.com/#my-single-post");
}
?>