mod_rewrite规则给出404错误

时间:2012-08-07 01:18:34

标签: apache .htaccess mod-rewrite web

遇到问题与mod_rewrite一起给我带来同样的错误404如下:

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

我需要url /music.mp3?id=1和真实网址/music.php?id=1

任何想法?

我认为路径RewriteRule

中有些东西被误解了

2 个答案:

答案 0 :(得分:2)

您无法与RewriteRule中的查询字符串(网址中的之后的所有内容)进行匹配。但无论如何你都不是真正匹配它,看起来你只需要附加到目标URI,所以:

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

应该足够好。任何查询字符串参数(如?id=1)都会自动附加到最后。

答案 1 :(得分:0)

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

“当网址以music.mp3?id=开头时,请抓取=之后的内容并将网址更改为music.php?id=并将部分放在id=之后

在正则表达式中,.字符具有特殊含义。如果你想说“点字符”,而不是给它特殊的含义,你需要逃避它,但在它后面放一个\,如下:

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

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