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、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 に答える