0

遇到了 mod_rewrite 的问题,它给我带来了相同的错误 404,如下所示:

 RewriteRule ^music.mp3?id=(.*)$ music.php?id= [L]

我需要 url /music.mp3?id=1 和真正的 url /music.php?id=1

任何想法??

我认为 RewriteRule 路径中有些地方被误解了

4

2 回答 2

2

您无法匹配. RewriteRule但无论如何你并没有真正匹配它,看起来你只需要附加到你的目标 URI,所以:

RewriteRule ^music\.mp3$ music.php [L]

应该够好了。任何查询字符串参数(如?id=1)将自动附加在末尾。

于 2012-08-07T01:32:49.257 回答
0

在你的表达(引擎规则)中,你想说的是:

“当 url 以 开头时music.mp3?id=,取后面的任何内容=并将 URL 更改为music.php?id=并将部分放在后面id=

在正则表达式中,.字符具有特殊含义。如果要说“点字符”,而不是赋予它特殊含义,则需要对其进行转义,但在其\后面加上一个,如下所示:

^music\.mp3?id=(.*)$

@Jon Lin 已经给了你另一部分,关于查询字符串。

于 2012-08-07T01:35:45.033 回答