【问题标题】:RewriteRule on Debian to shorten an URL在 Debian 上重写规则以缩短 URL
【发布时间】:2013-07-16 16:33:24
【问题描述】:

我正在尝试编写一个RewriteRule 来缩短Monitorix 网址,如下所示:

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>

但它不起作用。我得到:The requested URL /mon/all was not found on this server. 我在这里找到了一些关于类似问题的帖子,但对我来说没有什么真正的工作。知道我在做什么错吗?是不是 URL 中的端口号造成了实际问题干杯!


更新RewriteLog(由@williamt 建议):
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteLog "/var/log/apache2/rewrite.log"
  RewriteLogLevel 9
  RewriteRule ^/mon/all/?$ http://10.0.11.11:8089/monitorix-cgi/monitorix.cgi?mode=multihost.all&graph=all&when=1day&color=black [NC,L]
</IfModule>

【问题讨论】:

    标签: apache http mod-rewrite debian


    【解决方案1】:

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

    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/,但之后不匹配;问号使前面的标记 - 结束正斜杠 - 可选,$ 表示字符串的结尾。

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

    【讨论】:

    • 我还没有机会亲自测试它,但这很令人惊讶。我已经浏览了 Apache 网站上的许多文档,但没有一个真正提到使用完整域名。你能解释一下这个替换实际上是如何工作的吗?
    • @MacUsers 好点.. 我过去曾使用FQDN 来解决奇怪的问题,但这应该没问题;事实上,我刚刚创建了一个测试 PHP 脚本并使用 '/test.php?mode=multihost...' 作为替代 URL,我可以毫无问题地传递整个查询字符串。你确定这不仅仅是因为你在'monitorix.cgi'之前缺少一个/(如果我删除它,我会收到一个400错误的请求错误,与你不同)。如果做不到这一点,请启用重写日志并发布结果。 (如果这对你有用,我会更新我的答案......)
    • 谢谢威廉!出于某种原因,它仍然对我不起作用 - 我得到了同样的错误。你能想到我错过了什么吗?我收到404 Not found 错误。干杯!!
    • @MacUsers 如果启用重写日志并粘贴示例,则可以更轻松地调试失败的阶段。
    • 我已经启用了日志记录,但注意到被写入日志。我已经更新了我原来的帖子:这就是现在的样子。干杯!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-05
    • 2011-09-23
    • 1970-01-01
    • 2019-03-21
    • 2018-11-21
    • 1970-01-01
    相关资源
    最近更新 更多