2

見つけたものはすべて2日間読んでいますが、何も機能していないようです

このようなURLがあります

http://www.mysite.com/auction.php?category=23140

書き換えルールを作りたいので、そのように表示されます

http://www.mysite.com/auction/category/23140.php

私はseoフレンドリーなURLを構築するためだけにそれを行いますが、これまでのところ何も機能していません.

rewrite ^/auction.php?category=(.*)$ /auction/category/$1 last;

とてもシンプルに見えますが、なぜ機能しないのか本当にわかりません。

この行をサーバーブロックまたはロケーションブロックに配置する必要がありますか? 正規表現は間違っていますか?

どんな助けでも大歓迎です

4

2 に答える 2

3

最初に、 nginx での書き換えはクエリ文字列と一致せず、 uri のみと一致することを覚えておいてください。

たとえば、この URL: " /auction.php?category=23140 " では、uri は/auction.phpで、クエリ文字列はcategory=23140 です。

したがって、あなたの場合、正しいルールは次のようになります。

if ( $request_uri ~ "^/auction\.php\?category=[0-9]+(.*)?$" ) {
    rewrite "^.*$" /auction/category/$arg_category break; 
}

上記は一例ですので、ご都合に合わせて変更してください。$request_uri$arg_PARAMETERの使用方法は、nginx のマニュアルにも記載されています。

于 2013-07-19T07:05:05.597 に答える
0

あなたはそれを逆にやっています、これを試してください。

rewrite ^/auction/([^/]*)/([0-9]*) /auction.php?$1=$2

アドバイスとして、これがフレームワークなしで作成しているカスタム アプリケーションである場合は、使用できるルーティング モジュールを見つけることができ、あらゆることを簡単に行うのに役立ちます。

于 2013-07-18T15:08:28.780 に答える