Nginx的正则表达式URL重写不工作
问题描述:
为什么在地球上这种不工作时,我的所有其他URL重写工作完美:Nginx的正则表达式URL重写不工作
rewrite "^/search/?\?q(.+)$" /search.php?q$1 break;
我没有重启nginx的和所有的。
答
重写仅适用于uri路径。您不需要重写查询字符串部分,因为默认情况下它会自动附加到新的url。
rewrite /search /search.php break;
例如,/ search?q = something会写入/search.php?q=something。
查看http://wiki.nginx.org/HttpRewriteModule#rewrite了解更多详情。下面这行代表您的问题
此外,重写只能在路径上运行,而不是参数。
您的网址如何排列?预期的结果是什么? – 2013-03-10 14:25:29
我试图改变'搜索?q =任何'或'搜索/?q =无论'到'search.php?q =无论' – Alasdair 2013-03-10 14:30:34
这应该工作。你有什么错误?另外,请用'\ 1'代替'$ 1'作为替换 – 2013-03-10 14:35:01