2011-06-17 121 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);