2011-10-27 42 views
0

我有我.htaccess文件愉快地重寫像/conferences/details/21/index.php?pages=conferences&var1=details&var2=21的東西。重寫舊的URL到新的,乾淨的

我Piwik跟蹤這個網站,這正顯示出了很多推薦的來自網站,也沒有對URL如

http://www.domain.com/index.cfm?page=conference&intConferenceID=81 

和更新自己的網址(這是一個非常新的網站重新做)

http://www.domain.com/index.cfm?page=conference&intConferenceID=88&type=conference 

我想他們重寫/conferences/details/[numeric ID seen above]

我已經試過這樣:

RewriteRule ^index.cfm?page=conference&intConferenceID=(\d+)/?$ /conferences/details/$1 [L,NC,QSA] 

Obvisouly忽略了第二個例子。但是,它給了我一個404說index.cfm無法找到。

我需要寫什麼重寫規則來重寫上述格式化的鏈接(ID變更)爲/conferences/details/[ID]

回答

1

您可以從提取的RewriteCond查詢字符串:

RewriteCond %{REQUEST_URI} ^/index.cfm 
RewriteCond %{QUERY_STRING} page=(.+)&intConferenceID=([^&]+) 
RewriteRule . /%1/details/%2 [L] 

不知道這裏的「詳細信息」來自基礎上,/foo/bar/21 - >/index.php?f=foo&b=bar&arg=21重寫。

+0

非常感謝。 'details'來自乾淨的URL,就像這樣:'/ meetings/details/21'。我相應地編輯了我的問題。 – Bojangles

+0

基本上,RewriteRule不會重寫查詢字符串,只是路徑。您需要使用RewriteCond來匹配查詢字符串,並使用% –