2014-12-21 46 views
2

我的文件夾結構,如:的.htaccess一部分是用戶友好另一種是查詢

- templates 
    - search.php 
    - page.php 
    - index.php 
- index.php 

這不是完整結構,但它足以讓這個問題。 Index.php有基於名爲page的第一個查詢包含文件的任務。然後,通過模板類,我找到了正確的模板。 .htaccess對於這部分看起來是這樣的:

Options +FollowSymLinks 

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9\-]+)$ index.php?page=$1 

現在來,我解決不了的部分。我有另一個查詢,搜索字符串。

index.php?page=search&q=some+query是非友好URL的示例。現在,我想讓這個URL看起來像http://www.domain.com/search?q=some+query

我試過RewriteRule ^([a-zA-Z0-9\-]+)?q=([a-zA-Z0-9\+\%]+)$ index.php?page=$1&q=$2但我得到了Undefined index: q in ...

問題是,我如何使第一個查詢行爲像一個靜態頁面,其次作爲一個查詢字符串從該頁面行事?

回答

1

你只需要在你的第一個規則QSA標誌:

Options +FollowSymLinks 

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9-]+)/?$ index.php?page=$1 [L,QSA] 
  • QSA(查詢字符串附加)標誌保留現有的查詢參數,同時增加一個新的。
  • 您無法在RewriteRule指令中匹配查詢字符串。
+2

這樣做,非常感謝。在第一條規則結尾處追加'[L,QSA]'。 – Aleksandar

+0

不客氣,很高興它解決了。 – anubhava

相關問題