jQuery - 地址插件问题

时间:2011-06-17 00:19:57

标签: jquery-plugins url-rewriting

我遇到了一个我似乎无法弄清楚的问题,我使用jQuery地址插件来存储历史记录并启用深层链接,点击后的典型网址如下所示:

http://mysite.com/#!/page

这里的问题是我需要摆脱最后的/所以我需要它看起来像这样:

http://mysite.com/#!page

我正在使用插件版本1.2 - 最新版本为1.4。当我使用1.4时,我的hashbang #!消失了.. 谁知道为什么?即便如此,更新版本也会产生同样的问题。

解决此问题的原因是,如果请求?_escaped_fragment_=,我会使用301重定向到“漂亮网址”。所以这个:

http://mysite.com/data/#!page1

会变成:

http://mysite.com/data/page1

目前它执行此操作:mysite.com/data//page1

这里是.htaccess重写:

<IfModule mod_rewrite.c>
  RewriteEngine on

  # Rewrite current-style URLs of the form 'index.php?url=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
</IfModule>

这是我在页面加载时使用的一些相关PHP:

if ($fragment = $_GET['_escaped_fragment_']) {
    // OPTION 1: if Google is reqesting an '_escaped_fragment_=' page, then redirect to a clean URL
    header("Location: $base/$fragment", 1, 301);
    exit;
}

有关如何使这种情况更好的任何帮助表示赞赏。我不想'使用HTML5历史API',因为我已经探索过这个选项。

1 个答案:

答案 0 :(得分:2)

这行代码可以提供帮助!

$.address.strict(false);