Php 静态url不会重定向到请求的页面

Php 静态url不会重定向到请求的页面,php,apache,.htaccess,Php,Apache,.htaccess,我对.htaccess文件有一个问题。 我已将动态url改写为静态url,如下所示: www.mysite.com/index.php?lang=IT 在里面 www.mysite.com/it 使用此重写规则: RewriteEngine On RewriteRule ^it/([^/]*)\.html$ /index.php?lang=$1 [L] 到目前为止还不错 现在,我需要为重定向到产品描述的动态url创建另一个静态url www.mysite.com/product_details

我对.htaccess文件有一个问题。
我已将动态url改写为静态url,如下所示:
www.mysite.com/index.php?lang=IT
在里面
www.mysite.com/it

使用此重写规则:

RewriteEngine On
RewriteRule ^it/([^/]*)\.html$ /index.php?lang=$1 [L]
到目前为止还不错

现在,我需要为重定向到产品描述的动态url创建另一个静态url www.mysite.com/product_details.php?id=1485

在.htaccess中插入的规则是:

RewriteEngine On
RewriteRule ^it/prodotto-([^-]*)-([^-]*)\.html$ /it/product_details.php?id=$1&lang=$2 [L]
不幸的是,如果我点击相关链接,我无法访问请求的页面;但是如果我这样评论第一条规则

#RewriteRule ^it/([^/]*)\.html$ /index.php?lang=$1 [L]
然后我就可以看到那一页了。
您知道如何解决这个问题吗?

假设lang等于您希望脚本这样做的语言

RewriteEngine On
RewriteBase /
RewriteRule ^it/([^/]*).html$ /index.php?lang=$1 [L]
RewriteRule ^it/prodotto-([^/]*)-([^/]*).html$ /it/product_details.php?id=$1&lang=$2 [L]
这就行了

yoursite.com/it/$1.html


Hi iJumbo,是的,我正在尝试获得上面的结果,但正如所说的,第二个链接不起作用。正如arco444所说,第一个规则将覆盖第二个规则,尝试将它们反转或用新的urlHi分开。我更改了正则表达式,但我得到了相同的结果。将第二个规则(prodotto…)放在第一位,否则第一个将匹配它并停止处理,如
[L]
yoursite.com/it/prodotto-$1-$2.html