2014-12-29 402 views
1

這是我重寫乾淨網址的.htaccess代碼。如何使用.htaccess爲多個參數創建乾淨的網址

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+download\.php\?id=([^\s&]+) [NC] 
RewriteRule^download/%1? [R=301,L] 
RewriteRule ^download/([^/]+)/?$ download.php?id=$1 [L,QSA] 

此代碼對於url中的單個參數正常工作。例如,它將www.mysitename.com/download.php?id=123重寫爲www.mysitename.com/download/123

但是當我試圖在url中傳遞多個參數時,我得到的都是錯誤。搜索了各種資源和相關問題,但沒有得到妥善解決。

我需要一個像的www.mysitename.com/download/123/file-name代替www.mysitename.com/download.php?id=123&name=file-name

我想我已經使用的東西這樣的事RewriteRule ^(.*)/(.*)$ download.php?id=$1&name=$2的URL。但是在實現時,我得到了404錯誤。我如何更改我的代碼以通過多個網址。提前致謝。

回答

2

你只需要在您的規則

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+download\.php\?id=([0-9]+)&name=([^\s&]+)\s [NC] 
RewriteRule^download/%1/%2? [R=301,L] 
RewriteRule ^download/([0-9]+)/([^/]+)/?$ download.php?id=$1&name=$2 [L] 
+1

哇添加參數..這只是工作。這麼簡單..謝謝。 –

+1

不客氣。不要忘了驗證我的答案,以標記你的問題已解決 –

+1

當然..必須等待一段時間..ü救了我.. waaaa ..非常感謝.. –