0

我有这样的代码:

  echo "  <td width='57%' height='126' class='bord' ><a href='$category_name-$id.htm'
  class='title_style'>" . $title . "</a><br />
   ";

因此,$category_name 是数据库中类别的名称。所以它改变了!

我需要使用 RewriteRule 重写它。我试过这样的东西

   Options +FollowSymlinks
   RewriteEngine on
   RewriteRule ^([a-zA-Z0-9-]+)-([0-9]+)\.htm$  classified.php?id=$1 [L]

例如:假设 $category_name = Cars 和 $id =15 那么 url 应该是:Cars-15.htm

我提前谢谢你

4

1 回答 1

0

我怀疑您只想获取传入路径名的数字部分。

到目前为止,您的正则表达式是正确的,但您使用了错误的占位符。$1用于第一个捕获组,即您的案例中的类别。并$2包含第二个匹配组的内容,即数字 id。

所以你的 RewriteRule 应该是:

RewriteRule ^([a-zA-Z0-9-]+)-([0-9]+)\.htm$  classified.php?id=$2 [L]

顺便说一句,这可以进一步简化:

RewriteRule ^([\w-]+)-(\d+)\.htm$  classified.php?id=$2 [L]

(虽然也匹配类别部分中的下划线。)

于 2012-12-01T03:32:19.170 回答