带通配符的htaccess重写规则

时间:2016-02-29 22:15:17

标签: .htaccess

我正在尝试为我的网站创建一个htaccess文件。

我希望当用户输入http://sitename.co.uk/category/productname/?pid=productID时,会显示页面http://sitename.co.uk/product.php?id=productID

因此,类别和产品名称基本上是通配符,可以是任何内容,因为页面由productID提供支持。

我试过写下面但是没有运气......

RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/(?pid=.*)$ product.php?id=$1 [L,NC]

2 个答案:

答案 0 :(得分:1)

你应该可以尝试这样

RewriteCond %{QUERY_STRING} pid=([^&]+)
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+) /product.php?id=%1

%1是RewriteCond的反向引用。 $ 1是RewriteRule的后向引用。

答案 1 :(得分:0)

您需要从pid获取RewriteCond参数的值,因为RewriteRule不匹配查询:

RewriteCond %{QUERY_STRING} ^pid=([^&]+) [NC]
RewriteRule ^([\w-]+)/([\w-]+)/?$ product.php?id=51 [L,NC,QSA]