0

次の URL を書き換えようとしています。

example.com/[name1]/[name2]

に:

example.com/[name2].htm?id=[name1]

私はこの書き換えルールを試しています:

rewrite ^/(\d+)/(.+)/ /$2?id=$1 last; 

しかし、それは機能しているようです。誰かが私を助けることができますか?ありがとうございました!

4

1 に答える 1

0

リライトで .htm を忘れた

正規表現が想定しているように、 name1 は常にすべての数字で構成されているのは正しいですか?

更新しました:

location ~ ^/([A-Za-z0-9]+)/(.+)/$ {
  rewrite ^/([A-Za-z0-9]+)/(.+)/ /$2.htm?id=$1 last; 
}

基本的に、ここで行っていることは次のとおりです。

  • 場所の正規表現と一致します。これにより、書き換えたいURLが選択されます
  • location ブロックで書き換えを行います

(注: 正規表現を繰り返す必要があるのは、rewrite ディレクティブが $1 および $2 後方参照の内容をリセットするためです。何か他のことを行う場合は、ロケーション ブロック内でそれらを直接使用することができます)

于 2012-08-31T09:12:38.617 に答える