2011-10-14 88 views
0

我正在嘗試用.htaccess文件重寫鏈接。基本的東西,但由於某種原因,它不起作用。在.php之前,我需要該文件的名稱作爲URL中的最後一個單詞。我在這裏錯過了什麼?用.htaccess重寫鏈接

RewriteRule ^/product/(.*)$ /incl/static/products/$1.php [NC,L] 
+0

你的正則表達式抓取所有的東西直到url結尾,所以'/product/this/that/something.php?blah = blah'將使$ 1等於'this/that/something.php?blah = blah' 。 –

+0

等一等,我是否倒退?如何在/ product /後放置$ 1? – santa

+0

你需要像'RewriteRule ^/product /(.*).php(。*)$'這樣的命令來分別捕獲腳本名稱($ 1)和查詢字符串($ 2)。否則,你最終將'/ product/test.php'變成'/ incl/static/products/test.php.php' –

回答

1

Marc說你需要的東西來區分腳本文件名和其他部分組成:(。*)

RewriteRule ^products/script/(.*)/(.*)$ $1.php?$2&%{QUERY_STRING} 

但是,如果第一後查詢字符串,因此使用它:

RewriteRule ^products/script/(.*)$ $1.php?%{QUERY_STRING}