Apache 重写Debian上的规则以缩短URL

Apache 重写Debian上的规则以缩短URL,apache,http,mod-rewrite,debian,Apache,Http,Mod Rewrite,Debian,我正在尝试编写一个重写规则来缩短URL,如下所示: http://10.0.11.11:8089/monitorix-cgi/monitorix.cgi?mode=multihost.all&graph=all&when=1day&color=black 喜欢:http://10.0.11.11:8089/mon/all 因此,我在结尾的/etc/apache2/apache2.conf(关于Debian wheezy)中添加了以下内容: <IfModule mo

我正在尝试编写一个
重写规则
来缩短URL,如下所示:

http://10.0.11.11:8089/monitorix-cgi/monitorix.cgi?mode=multihost.all&graph=all&when=1day&color=black
喜欢:
http://10.0.11.11:8089/mon/all

因此,我在结尾的/etc/apache2/apache2.conf(关于Debian wheezy)中添加了以下内容:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteRule ^/?mon/all/?$ monitorix-cgi/monitorix.cgi?mode=multihost.all&graph=all&when=1day&color=black [NC,L]
</IfModule>

在替换中包含完整的域名:

RewriteRule ^/mon/all/?$ http://10.0.11.11:8089/monitorix-cgi/monitorix.cgi?mode=multihost.all&graph=all&when=1day&color=black [NC,L]
(我已经测试过了)

为了便于其他人阅读,模式中的
/?$
表示您匹配
/mon/all
/mon/all/
,但之后不匹配;问号使前面的标记(结束正斜杠)成为可选标记,$表示字符串的结尾


提示:用于准确查看测试重写规则时发生的情况(记得在测试结束后将其关闭)-特别是在最后一行中查找“匹配”和“不匹配”。

我还没有机会自己测试它,但令人惊讶。我浏览了Apache网站上的许多文档,但没有一个真正提到使用完整域名。你能解释一下这种替代是如何起作用的吗?@MacUsers很好。。在过去,我使用了一个解决奇怪问题的方法,但它应该可以解决这个问题;事实上,我刚刚创建了一个测试PHP脚本,并使用“/test.PHP?mode=multihost…”作为替代URL,我可以毫无疑问地传递整个查询字符串。你确定这不仅仅是因为你在“monitorix.cgi”之前缺少了一个/吗(如果我删除它,我会得到一个400错误的请求,这与你不同)。否则,启用“重写日志并发布结果”。(如果这些对你有用,我会更新我的答案…)谢谢!出于某种原因,它仍然不适用于我-我得到同样的错误。你能想到我错过了什么吗?我发现
404未找到
错误。干杯@MacUsers如果启用rewritelog并粘贴一个示例,那么调试失败的阶段会更简单。我已经启用了日志记录,但日志中没有写入任何内容。我已经更新了我原来的帖子:这就是它现在的样子。干杯
RewriteRule ^/mon/all/?$ http://10.0.11.11:8089/monitorix-cgi/monitorix.cgi?mode=multihost.all&graph=all&when=1day&color=black [NC,L]