0

私はmod_rewriteまたはRegexのどちらかを初めて使用します。したがって、私は次の問題についてあなたの助けが必要です。

次のようなPHPページを取得しました。

stuff.php?id=1&text=2

私はのようになりたいことを知っています

stuff/2.html

htaccessのRewriteRule行をこのように見せることを念頭に置いている人はいますか?

よろしくお願いします!

4

2 に答える 2

1

この特定のページの書き換えルール:

RewriteRule ^stuff/2\.html$ stuff.php?id=1&text=2

そして、2動的でなければならない場合:

RewriteRule ^stuff/([0-9]+)\.html stuff.php?id=1&text=$1

少し説明:

  • ^$は文字列の開始と終了を表すため、一致しませんlongstuff/2.html.php
  • ドットはエスケープする必要があります\.。そうしないと、正規表現 (「任意の文字」) で特別な意味を持つためです。
  • 2 番目のパターンの括弧は「キャプチャ グループ」であり、その内容は$n(with n= キャプチャ グループの数、この場合は1)として書き直されます。
  • [0-9]文字クラスで、クラスの 1 文字 (この場合は数字) に一致します
  • +「1つ以上」を意味します
于 2013-03-20T13:23:55.563 に答える
0

リダイレクトstuff/2.html先のルールはこちらstuff.php?id=1&text=2

RewriteRule ^stuff/([\d]+)\.html$ stuff.php?id=1&text=$1 [L]

通知[\d]+は数字のみを受け入れます。文字とキャレットを許可する場合は、次のルールを使用します。

RewriteRule ^stuff/([\w-]+)\.html$ stuff.php?id=1&text=$1 [L]
于 2013-03-20T13:23:10.420 に答える