3

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

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

所以我的问题是:

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

编辑

我有一个小更新。如果此代码从 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;
    }
4

3 回答 3

3

好的,经过反复试验,我自己管理了它!

这就是我所追求的:

  // 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 语句,只检查是否有哈希。

于 2012-10-23T15:00:03.523 回答
0

我对 Wordpress 不是很熟悉,但它不是带有内置工具来为您的帖子配置所需的 URL 格式吗?我首先要看的地方是那里,并使用 URL 中的哈希符号设置符合您需要的格式。

您的另一种选择是维护自己的 htaccess,但由于您在根目录中有一些页面应该重定向到带有哈希符号的 URL,而有些则不应该,您必须手动为每个页面创建规则恐怕,从长远来看,这会有点痛苦。

我相信这是 Wordpress 在幕后为您所做的,这会更方便,但我不确定。

于 2012-10-13T09:39:09.700 回答
-1

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

<?php

if($_GET["ajaxVar"]!=1){
header("Location: http://www.mydomain.com/#my-single-post");
}
?>
于 2012-10-13T09:37:55.410 回答