0

htaccessファイルにURLのリダイレクトがあり、正常に機能します。

RewriteRule (.*)/(.*)\.html$ view.php?mode=$1&id=$2 [nc]

ただし、次の行で開始パラメーター(?start=1)の存在を確認するように行を変更すると、404が返されます。

RewriteRule (.*)/(.*)\.html(\?start=[0-9]+)$ view.php?mode=$1&id=$2&start=$5 [nc]

startオプションのパラメーターを取得してURIに追加するには、これをどのように記述すればよいですか?

4

1 に答える 1

1

?のクエリ文字列 ( の後のすべて) と照合することはできません。 a のRewriteRuleと照合し、 %Nを使用してグループ化を逆参照する必要があります。%{QUERY_STRING}RewriteCond

RewriteCond %{QUERY_STRING} ^start=([0-9]+)
RewriteRule (.*)/(.*)\.html$ view.php?mode=$1&id=$2&start=%1 [nc]

ただし、これを行う必要はありません。既存のクエリ文字列を追加するには、次を使用しますQSA flag

RewriteRule (.*)/(.*)\.html$ view.php?mode=$1&id=$2 [nc,QSA]

URI が の場合、次の/something/file.html?start=100ように書き換えられます。/view.php?mode=something&id=file&start=100

于 2012-09-21T06:14:23.163 に答える