2011-05-26 127 views
0

我有一些问题与URL重写Apache和重写URL问题

我需要trasform该网址

News/?a=shownews&id=53 

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

我试图使它:

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

但它没有工作,可以做你h elp我来解决它?

回答

0

编辑:? 我收回这句话 - 显然这是可能做到这一点,你的情况

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

是刚做完 RewriteRule ^([A-Za-z0-9 _] +)/?$ index.php?m = $ 1 [QSA] 我看到了你的回复thx – oscurodrago 2011-05-26 22:37:39

0

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

+0

哦哦,我不想使用$ _GET我只是想拆分 新闻/ A = shownews&ID = 53 转换成 $ 1 =新闻 $ 2 = a = shownews&id = 53 将它们组合成index.php?m = News&a = shownews&id = 53 – oscurodrago 2011-05-26 22:08:36

+0

那么你的网址中有什么问号? – MatTheCat 2011-05-26 22:10:14

0

从Apache的文件:

默认情况下,查询字符串加改变地通过 。但是,您可以在包含查询字符串部分的替换字符串 中创建URL。只需在 内使用 替代字符串中的问号表示 以下文字应该是 重新注入到查询字符串中。 如果要删除现有的 查询字符串,请使用问号结束替换 字符串。至 结合新旧查询字符串,请使用[QSA]标志 。

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

希望这会有所帮助。