One of the people using our nagios server asked the other day:
"I know this doesn't work, but can https://nagios.our.site/ourhost go directly to the page for host?"
I explained that the frames inside the current version of Nagios that we use were simply
links to cgi urls like
https://nagios.our.site/cgi-bin/status.cgi?type=1&host=ourhost
and that you could type that url into the browser and get a direct link. As I was explaining this I realized that it would not be too hard to use Apache Rewrite to create a url like this
https://nagios.our.site/host/ourhost
This is what I added to the nagios.conf file in /etc/httpd/conf.d to accomplish this.
RewriteEngine On
RewriteLog /etc/httpd/logs/ssl_rewrite_log
# Rewrite host/foo to basic cgi view url
RewriteRule ^/host/(.*\.cgi)$ /cgi-bin/$1 [L,PT]
RewriteRule ^/host/([a-z0-9\-]+*)$ /cgi-bin/status.cgi?host=$1 [L,PT]
The first rule rewrites any links clicked from with the initial page to correctly redirect to the appropriate CGI, the second rewrites the /host/ourhost to be a CGI url pointing to the basic status page. The options are important, the first L means "last rule, stop attempting to rewrite the url", PT means that it is not a plain file, but needs to go back through the URI engine to be resolved to a cgi.
It's a simple hack, but people seem to like it. Which is probably more a statement about the Nagios dashboard than the utility of this tweak.