2015-12-01 106 views
2

我想爲我的網站使用以下URL。.htaccess重定向多個查詢參數

http://mywebsite.com/product.php 
to 
http://mywebsite.com/product 

http://mywebsite.com/product.php?id=5 
to 
http://mywebsite.com/product/5 


http://mywebsite.com/product.php?action=delete&id=5 
to 
http://mywebsite.com/product/delete/5 



http://mywebsite.com/product.php?action=edit&id=3 
to 
http://mywebsite.com/product/edit/3 

我使用此代碼對我的.htaccess文件

RewriteEngine on 

RewriteRule ^product product.php 

RewriteRule ^product/([a-zA-Z0-9_-]+)$ product.php?id=$1 
RewriteRule ^product/([a-zA-Z0-9_-]+)/$ product.php?id=$1 

但問題是,當我使用http://mywebsite.com/product/5與GET變量顯示, 它不通過id參數,我怎麼能實現從我的網址多個查詢?

回答

0

試試這個htaccess的:

RewriteEngine on 

RewriteRule ^product/?$ product.php [L] 

RewriteRule ^product/([a-zA-Z0-9_-]+)/?$ product.php?id=$1 [L] 
RewriteRule ^product/delete/([a-zA-Z0-9_-]+)/?$ product.php?action=delete&id=$1 [NC,L] 
RewriteRule ^product/edit/([a-zA-Z0-9_-]+)/?$ product.php?action=edit&id=$1 [NC,L] 
+0

你能告訴我什麼是兩條線之間的區別? RewriteRule^product /?$ product.php [L]和RewriteRule^product product.php –

+0

Ashis,**^product **匹配** product.php **或productss ** **之後的任何字符**,因爲存在沒有結束。使用** $ **限制它匹配**產品**和一個可選的斜槓只。 ** $ **在這裏很重要,以防止重寫循環錯誤。 – starkeen

+1

現在明白了。感謝您的澄清 –