我在使用网址重写时遇到了一些问题
我需要转换那个网址
News/?a=shownews&id=53
到
index.php?m=News&a=shownews&id=53
我试图成功:
RewriteRule ^([A-Za-z0-9_]+)/\?(.+?)$ index.php?m=$1&$2 [R]
但它不起作用,你可以帮我解决一下吗?
答案 0 :(得分:0)
Apache无法使用$ _GET参数来构建新的URL;你必须改变URL的结构。
答案 1 :(得分:0)
来自Apache的文档:
默认情况下,传递查询字符串 通过不变。但是,你可以 在替换字符串中创建URL 包含查询字符串部分。只是 在里面使用问号 替换字符串表示 应该是以下文字 重新注入查询字符串。 当您想要删除现有的 查询字符串,结束替换 字符串只有一个问号。至 结合新旧查询字符串,使用 [QSA]旗帜。
使用[QSA]标记,您可以按原样重新绑定您的URL,并且将附加或传递现有的查询字符串参数。
希望这有帮助。
答案 2 :(得分:0)
编辑: 我把它拿回来 - 显然你可以在你的情况下这样做
RewriteRule ^(.+)/$ index.php?m=$1 [QSA]