2014-07-15 129 views
0

這是一種很難尋找,我找到其他工作的例子,但基本上我有一個網址:.htacess重定向查詢字符串

site.com/?page=test&id=3 

我想盡可能改寫:site.com/test:3

與'測試'是頁面,3是id。

我有以下匹配相同的值:

RewriteCond %{QUERY_STRING} ^(\w+)=(\w+)$ 
RewriteRule ^/ /%1:%2? 

但是,這僅適用於鍵和值,我可以使用正則表達式是什麼只選擇鍵,用1%和2%?

感謝,

我的第二次嘗試: (我只需要上的index.php)

RewriteCond %{QUERY_STRING} ^page=(\w+)&id=([0-9]*)$ 
RewriteRule ^index\.php$ /%1:%2**?** [R=302,L] 

,但現在當我做了404錯誤是發生:的index.php /詳細信息:1

+0

請告訴我裏面的括號最終在你的變量中。嘗試'^ \ w + =(\ w +)$' –

回答

1

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代碼:

RewriteEngine On 

RewriteCond %{THE_REQUEST} \?test=([^\s&]+)&test2=([^\s&]+) [NC] 
RewriteRule ^/?$ /%1:%2? [R=302,L,NE] 

RewriteRule ^([^:]+):([^/]+)/?$ /?test=$1&test2=$2 [L,QSA] 
+0

甜,但如果查詢不存在?我得到404個。 – MysteryDev

+0

你爲哪個URL獲得404? – anubhava

+0

如果我去了一個目錄的索引。即:site.com/ – MysteryDev