2

私は自分のウェブサイトの写真セクションに取り組んでおり、表示する写真を選択すると、必要なものを取得するためのさまざまなナビゲーションメニューが表示されます (最新、トレンド、友達、お気に入りなど)。写真を日付で並べ替える可能性もあります。 、評価、ビューなど

ああ、ページに数枚の写真だけを表示するために使用しているページネーションのシステムもあります。

今のところ私はこれを持っています:

RewriteRule ^photo$ photo.php?tab=latest
RewriteRule ^photo/trending$ photo.php?tab=trending
RewriteRule ^photo/friends$ photo.php?tab=friends
RewriteRule ^photo/favorite$ photo.php?tab=favorite

RewriteRule ^photo/page:([0-9]+)/$ photo.php?tab=latest&page=$1
RewriteRule ^photo/trending/page:([0-9]+)/$ photo.php?tab=trending&page=$1
RewriteRule ^photo/friends/page:([0-9]+)/$ photo.php?tab=friends&page=$1
RewriteRule ^photo/favorite/page:([0-9]+)/$ photo.php?tab=favorite&page=$1

RewriteRule ^photo/sort:([A-Za-z0-9]+)/page:([0-9]+)/$ photo.php?tab=latest&page=$2&sort=$1
RewriteRule ^photo/trending/sort:([A-Za-z0-9]+)/page:([0-9]+)/$ photo.php?tab=trending&page=$2&sort=$1

And so on

page:([0-9]+).htaccess ファイルに何かを検出させ、ページ番号を含む変数を php ファイルに自動的に送信させる可能性があるのではないかと思っています。同じ種類の機能を持つ記事、ビデオ、フォーラム セクションもあるから、これは非常に役に立ちます。

4

1 に答える 1

1

これに置き換えてみてください:

# Extract out the "page" and "sort" parts of the URI, and append them to the query string
RewriteRule (.*)/page:([0-9]+)/(.*) /$1/$3?page=$2 [L,QSA]
RewriteRule (.*)/sort:([A-Za-z0-9]+)/(.*) /$1/$3?sort=$2 [L,QSA]

# Proceed with the regular routing
RewriteRule ^photo/?$ photo.php?tab=latest  [L,QSA]
RewriteRule ^photo/trending/?$ photo.php?tab=trending [L,QSA]
RewriteRule ^photo/friends/?$ photo.php?tab=friends [L,QSA]
RewriteRule ^photo/favorite/?$ photo.php?tab=favorite [L,QSA]

ここで重要なのは、QSAどこでもフラグを使用することです。これにより、クエリ文字列がまとめられるときに、必要に応じて新しいビットを追加できます。もう 1 つは、通常のルーティング部分/?です。正規表現の一致の最後に追加しました。これは、ページ/並べ替えの処理が原因で、末尾にスラッシュが付く可能性があるためです。

于 2012-07-23T15:54:49.710 に答える