2011-06-17 125 views
2

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

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

问题是我需要摆脱过去的/的,所以我需要它看起来像这样:

http://mysite.com/#!page 

我使用的插件版本1.2 - 最新的是1.4。当我使用1.4我的hashbang #!消失.. 任何人都知道为什么?即使如此,更新后的版本也会产生相同的问题。

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

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'作为ive探索这个选项已经。

+0

你应该张贴您的解决方案作为一个答案,标记为接受的 - 在这种情况下,它会为那些在类似情况下更加有用,因为现在它已经0回答您的问题不看起来有吸引力.. 。 – LazyOne 2011-06-18 22:16:11

回答

2

这行代码可以帮助!

$.address.strict(false);