0

ルートの 2 番目の Get パラメータを取得する際に別の問題が発生しています。2 番目のパラメータを取得できません。ここに私が書いたルールがあります。

RewriteRule ^knowledgebase/topics/([0-9]+)-([A-Za-z0-9-]+)\?page=([0-9]+)?$ topic.php?id=$1&page=$3 [NC,L] 

予想される URL は

knowledgebase/topics/6457-microsoft-office-application-information?page=2 

ここ6457に最初の get 変数、-次にタイトルmicrosoft-office-application-information?page=次に 2 番目の get パラメータがありますが 2、そのページ変数を取得することはできません

問題は何ですか?正規表現で何か問題がありますか??

4

1 に答える 1

1

クエリ文字列は書き換え URL パターンに含まれません。RewriteRule ディレクティブから

何が一致していますか?
ホスト名、ポート、またはクエリ文字列と照合する場合は、それぞれ %{HTTP_HOST}、%{SERVER_PORT}、または %{QUERY_STRING} 変数で RewriteCond を使用します。

その部分を個別に抽出する必要があります

RewriteCond %{QUERY_STRING} page=([0-9]+)
RewriteRule ^knowledgebase/topics/([0-9]+)-[A-Za-z0-9-]+ topic.php?id=$1&page=%1 [NC,L]
于 2013-02-15T17:06:46.300 に答える