0
我想寫一個RewriteRule
縮短Monitorix URL是這樣的:重寫規則在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
所以,我已將此添加/等/ apache2的/ apache2.conf(在Debian喘息)結尾:
<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網站上瀏覽過很多文檔,其中沒有一篇介紹使用完整的域名。你能解釋一下這個替代實際上是如何工作的嗎? – MacUsers
@MacUsers好點..我已經使用[FQDN](http://en.wikipedia.org/wiki/Fully_qualified_domain_name)解決了過去的奇怪問題,但它應該是可以的;實際上,我剛剛創建了一個測試PHP腳本,並使用'/test.php?mode=multihost ...'來替代URL,並且我可以傳遞整個查詢字符串而不會出現問題。你確定這不僅僅是因爲你在'monitorix.cgi'之前缺少一個/(如果我刪除了它,我得到一個400錯誤的請求錯誤,與你不同)。否則,請啓用rewritelog和發佈結果。 (我會更新我的答案,如果任何這對你有用...) –
感謝williamt!某些原因,它仍然不適合我 - 我得到同樣的錯誤。任何你能想到的東西,我錯過了?我得到'404未找到'錯誤。乾杯!! – MacUsers