2011-12-24 76 views
1

好的,我一直在試圖弄清楚這一點。我剛剛想出瞭如何使用Apache的mod_rewrite規則。我在我的網站上設置了一個搜索腳本,它使用GET。我有一個使用GET方法的html表單。問題是,當我提交表單我的網址出來這樣的:http://localhost/search/?search=name&term=user當它應該是這樣的:http://localhost/search/name/userHTML表單和mod_rewrite

有沒有辦法讓url像第二個?我正在使用PHP。

這裏是我的htaccess文件,以及:

RewriteEngine on 
RewriteRule ^member/?([^/\.]+)?/?$ member.php?page=$1 [L] 
RewriteRule ^games/?([^/\.]+)?/([^/\.]+)?/?$ games.php?page=$1&p=$2 [L] 
RewriteRule ^search/?([^/\.]+)?/([^/\.]+)?/?$ search.php?search=$1&term=$2 [L] 
RewriteRule ^([^/\.]+)/?$ index.php?page=$1 [L] 

感謝, Legobear154

回答

2

這有什麼好做的mod_rewrite。你需要使用JavaScript。

創建一個onsubmit您的窗體的事件處理程序。並且在javascript函數中根據表單數據修改表單URL。

+0

所以,我不能只是做一個mod_rewrite來修改查詢字符串?我正在閱讀Apache文檔並發現這一點:修改查詢字符串 默認情況下,查詢字符串未經更改而傳遞。但是,您可以在包含查詢字符串部分的替換字符串中創建URL。只需在替換字符串中使用問號表示應將以下文本重新注入查詢字符串。當您要刪除現有的查詢字符串時,只需使用問號結束替換字符串。要合併新舊查詢字符串,請使用[QSA]標誌。 – legobear154 2011-12-24 06:40:44

+0

Mod_reqrite在請求完成後開始工作。它不能在客戶端更改URL。因爲你還沒有創建URL,所以更不用說請求了。 – 2011-12-24 06:52:09

+0

好的,我將如何去修改JavaScript中的表單URL?我知道一些JavaScript,但不是很多。 – legobear154 2011-12-24 07:05:19

0

請嘗試以下操作: -

Options +FollowSymlinks 
RewriteEngine on 
RewriteRule ^member/([^/]+)/ member.php?page=$1 [NC] 
RewriteRule ^games/([^/]+)/([^/]+)/ games.php?page=$1&p=$2 [NC] 
RewriteRule ^search/([^/]+)/([^/]+)/ /search.php?search=$1&term=$2 [NC] 
RewriteRule ^([^/]+)/ index.php?page=$1 [NC] 

希望它能幫助。