mod_rewriteで問題が発生し、同じエラー404が次のようにスローされます。
RewriteRule ^music.mp3?id=(.*)$ music.php?id= [L]
URL/music.mp3?id=1と実際のURL/music.php?id=1が必要です
何か案が??
RewriteRuleのパスで何かが誤解されていると思います
mod_rewriteで問題が発生し、同じエラー404が次のようにスローされます。
RewriteRule ^music.mp3?id=(.*)$ music.php?id= [L]
URL/music.mp3?id=1と実際のURL/music.php?id=1が必要です
何か案が??
RewriteRuleのパスで何かが誤解されていると思います
のクエリ文字列( URLの?の後のすべて)と照合することはできませんRewriteRule
。しかし、とにかく実際には一致していません。ターゲットURIに追加する必要があるように見えるので、次のようにします。
RewriteRule ^music\.mp3$ music.php [L]
十分に良いはずです。クエリ文字列パラメータ(など?id=1
)は、最後に自動的に追加されます。
あなたの表現(エンジンルール)で、あなたが言いたいのは:
「URLが。で始まる場合は、music.mp3?id=
の後にあるものをすべて取得し=
、URLをに変更してmusic.php?id=
、その部分を後に配置しますid=
。」
正規表現では、.
文字には特別な意味があります。「ドット文字」と言いたいが、特別な意味を与えたくない場合は、それをエスケープする必要がありますが、次\
のように後ろに置きます。
^music\.mp3?id=(.*)$
@Jon Linは、クエリ文字列に関する他の部分をすでに提供しています。