私は可能でないことを試みているかもしれません。mod_rewriteは、書き換えられたURLに疑問符を含めることができます
^/report/user?(.*)$ ./report/user.php?userid=$1 [L,NC]
私は、サーバーのエラーをスローし、内部が/\?
を使用して?
を脱出しようとしている:私は何をしたいか
は以下を書き換えています。
これを達成する方法はありますか?
私は可能でないことを試みているかもしれません。mod_rewriteは、書き換えられたURLに疑問符を含めることができます
^/report/user?(.*)$ ./report/user.php?userid=$1 [L,NC]
私は、サーバーのエラーをスローし、内部が/\?
を使用して?
を脱出しようとしている:私は何をしたいか
は以下を書き換えています。
これを達成する方法はありますか?
たぶん、あなたは試してみてください:
RewriteCond %{QUERY_STRING} ^([0-9]+)$
RewriteRule ^/report/user$ ./report/user.php?userid=%1 [L,NC]
あなたのユーザーIDが英数字の場合は、その後、ちょうどあなたがクエリを取得するには、 `%{QUERY_STRING}を`使用することができます([0-9a-zA-Z]+)
ああ、ユーザーIDだけが '?'の後ろにあるのかどうか尋ねるとは思わなかった。そういう意味になります。 – craniumonempty
質問のコードがどのようになっているかを推測するのは私の前提です。 – jCoder
OK、?
は1回または0回正規表現ですので、が1回か0回あるかどうかを尋ねて、それ以外のものを取得しています。あなたが別のクエリにクエリ文字列をキャプチャ(およびそれを転送しない)にしたい場合は、試してみてください。
RewriteRule ^/?report/user$ /report/user.php?userid=%{QUERY_STRING} [L,NC]
を...ローカルマシン上?a=1&b=2
テスト - あなたは
望むものではないので、おそらく>?userid=a=1&b=2
をそれがクエリ文字列のためにどのように出るかはわかりませんが、それを転送する必要があります。 R
フラグで試してみてください。あなたは、単にクエリ文字列に追加したい場合は、試すことができます:
RewriteRule ^/?report/user$ /report/user.php?userid=1 [L,NC,QSA]
...クエリ文字列に、ローカルマシン上でテスト?a=1&b=2
- >?userid=1&a=1&b=2
だけでないクエリを変更せずに場所を変更>?a=1&b=2
RewriteRule ^/?report/user$ /report/user.php [L,NC]
が...ローカルマシン上のクエリ文字列?a=1&b=2
をテストし必要
http://htaccess.madewithlove.be/が必要な場合は、ここで書き直しをテストできます。ただちにロールオーバーすることを覚えておいてください。私はQSA
(クエリー文字列の追加)はどちらにもプログラムされていないと思うが、それでもまともなツールだ。
に
RewriteCond
で最後の部分を変更します文字列ですが、エラーは別のものかもしれません。残りの命令は何ですか? – craniumonempty私が持っている書き換えルールは唯一のものなので、何でも使えます。 – lethalMango
'RewriteRule' _pattern_はURLパスと照合します。これはクエリ文字列を除きます。 – MrWhite