我遇到了 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 路径中有些地方被误解了
您无法匹配. RewriteRule
但无论如何你并没有真正匹配它,看起来你只需要附加到你的目标 URI,所以:
RewriteRule ^music\.mp3$ music.php [L]
应该够好了。任何查询字符串参数(如?id=1
)将自动附加在末尾。
在你的表达(引擎规则)中,你想说的是:
“当 url 以 开头时music.mp3?id=
,取后面的任何内容=
并将 URL 更改为music.php?id=
并将部分放在后面id=
”
在正则表达式中,.
字符具有特殊含义。如果要说“点字符”,而不是赋予它特殊含义,则需要对其进行转义,但在其\
后面加上一个,如下所示:
^music\.mp3?id=(.*)$
@Jon Lin 已经给了你另一部分,关于查询字符串。