2012-03-01 41 views
0

我有以下的.htaccess在.htaccess鏈接上包含GET變量?

RewriteRule ^register.html$ ?page=register 

我有一個請求,通常下面一個jQuery AJAX功能,它的工作原理。

www.blabla.com/#!?page=register&module=ajax 

然而,當我用的.htaccess

www.blabla.com/#!kayit.html&module=ajax [HTTP/1.1 404 Not Found 114 ms] 

我怎樣才能解決這個問題,任何想法使用它,它得到的竊聽?

當您使用 #
+1

你重寫規則既不要求相匹配。也許這就是問題所在? – tdammers 2012-03-01 06:57:24

+0

我怎樣才能使它匹配? $ module = ajax只是一個空的東西,以防止Ajax請求成爲循環。 – Aristona 2012-03-01 07:02:54

回答

1

你根本就做不到。您正在使用片段標識符(哈希符號之後的文本)作爲路徑(這是ajax-y網站的常規過程),但片段標識符甚至不會到達服務器。 您必須向服務器發送ajax請求並提供其內容。

實際的問題是,如何從與個位,已經提供的重寫規則合併GET變量。

因此,在你的榜樣,你想要的網址register.html?var=1被重定向到?page=register&var=1

RewriteRule ^register.html$ ?page=register [qsappend] 

文檔:http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriteflags

+0

哈希標籤是一種在Twitter上對事物進行分類的系統。 URI中的散列符號表示片段標識符的開始。 – Quentin 2012-03-01 07:39:46

+0

這是正確的。您可以通過編寫和修改哈希標記來模擬ajax-y環境中的URL。但是哈希標記實際上並未發送到服務器。您必須獲取哈希標記的內容,使用javascript解析它,使用實際的URL向服務器發出ajax請求,並將收到的內容包含在頁面中。但是你不能跳過那部分的「獲取URL並做一個Ajax請求」,並期望它能夠工作。 – apfelbox 2012-03-01 07:43:42

+0

它的工作。使用qsappend時應該注意什麼? – Aristona 2012-03-01 07:44:56

0

片段標識符:

  1. 的處理完全是客戶端和永遠不會從客戶端發送,您可以通過添加qsappend(查詢字符串追加)標誌做到服務器
  2. 必須出現在URI的查詢Ÿ串