Apache和Rewrite url问题

时间:2011-05-26 21:58:05

标签: apache url-rewriting

我在使用网址重写时遇到了一些问题

我需要转换那个网址

News/?a=shownews&id=53 

index.php?m=News&a=shownews&id=53

我试图成功:

RewriteRule ^([A-Za-z0-9_]+)/\?(.+?)$ index.php?m=$1&$2 [R]

但它不起作用,你可以帮我解决一下吗?

3 个答案:

答案 0 :(得分:0)

Apache无法使用$ _GET参数来构建新的URL;你必须改变URL的结构。

答案 1 :(得分:0)

来自Apache的文档:

  

默认情况下,传递查询字符串   通过不变。但是,你可以   在替换字符串中创建URL   包含查询字符串部分。只是   在里面使用问号   替换字符串表示   应该是以下文字   重新注入查询字符串。   当您想要删除现有的   查询字符串,结束替换   字符串只有一个问号。至   结合新旧查询字符串,使用   [QSA]旗帜。

使用[QSA]标记,您可以按原样重新绑定您的URL,并且将附加或传递现有的查询字符串参数。

希望这有帮助。

答案 2 :(得分:0)

编辑: 我把它拿回来 - 显然你可以在你的情况下这样做

RewriteRule ^(.+)/$ index.php?m=$1 [QSA]