1

たぶん、私は不可能なことをしようとしているか、完全に明白な何かを見逃しています。

私がやりたいことは、次のように書き直すことです。

^/report/user?(.*)$ ./report/user.php?userid=$1 [L,NC]

?using をエスケープしようとしましたが、/\?それがスローされ、内部サーバーエラーが発生しました。

これを達成する方法はありますか?

4

2 に答える 2

2

多分あなたは試すかもしれません:

RewriteCond     %{QUERY_STRING} ^([0-9]+)$
RewriteRule     ^/report/user$ ./report/user.php?userid=%1 [L,NC]

ユーザー ID が英数字の場合は、最後の部分RewriteCond([0-9a-zA-Z]+)

于 2012-04-27T19:25:57.660 に答える
1

OK、a?は 1 回または 0 回の正規表現なので、1 回か 0 回かを尋ねて、rそれ以外のすべてを取得します。クエリ文字列を別のクエリにキャプチャする (転送するだけでなく) 場合は、次を試してください。

RewriteRule ^/?report/user$ /report/user.php?userid=%{QUERY_STRING} [L,NC]

...ローカルマシンでテスト?a=1&b=2->?userid=a=1&b=2おそらくあなたが望むものではない

クエリ文字列がどうなるかはわかりませんが、転送する必要があります。flagで試してみて、Rどのように見えるかを確認してください。単にクエリ文字列に追加したい場合は、次を試すことができます。

RewriteRule ^/?report/user$ /report/user.php?userid=1 [L,NC,QSA]

..ローカルマシンでクエリ文字列をテスト?a=1&b=2->?userid=1&a=1&b=2

クエリを変更せずに場所を変更するだけでは、QSA は必要ありません

RewriteRule ^/?report/user$ /report/user.php [L,NC]

..ローカルマシンでクエリ文字列をテスト?a=1&b=2->?a=1&b=2

http://htaccess.madewithlove.be/が必要な場合は、ここで書き換えをテストできます。一度ロールオーバーすることを覚えておいてください。基本的なことだけをテストできます。(クエリ文字列の追加)もプログラムされているとは思いませんQSAが、それでもまともなツールです。

于 2012-04-27T19:06:06.320 に答える