.htaccess url重写有问题

时间:2013-05-23 17:44:34

标签: php regex apache .htaccess mod-rewrite

我无法使用.htaccess自定义网址。我在.htaccess中应用了所有更改,但这个更长时间一直困扰着我。

我有一个网址:

product.php?act=pro&cat=1&category=Nokia

我想将其更改为:

product/1/Nokia.html

我使用了以下规则:

RewriteRule ^product/?([a-zA-Z_]+)/([a-zA-Z_]+)\.html$ product.php?act=$1&cat=$2&category=$3 [QSA]

但是没有让这个正确。

3 个答案:

答案 0 :(得分:4)

你只捕获2组并使用$ 1,$ 2,$ 3。

将您的代码更改为:

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

RewriteRule ^product/([^/]+)/([^.]+)\.html$ /product.php?act=pro&cat=$1&category=$2 [QSA,L,NC]

答案 1 :(得分:1)

试试这个:

RewriteRule ^/product/([0-9]+)/(.*).html$ ^/product.php?act=pro&cat=$1&category=$2 [NC,L]

答案 2 :(得分:0)

匹配cat的模式应该包含0-9