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回答您的问题不看起来有吸引力.. 。 – LazyOne 2011-06-18 22:16:11