Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.
<Location /status>
SetHandler server-status
order deny,allow
allow from all
</Location>

But when I visit http://ip:port/status,

a 404 Not Found is reported,why?

share|improve this question
    
Just for the heck of it, create an index.html file in that directory and see what happens. –  John Gardeniers Jul 19 '11 at 5:02
    
@John Gardeniers,MUST that directory exist in the first place? I followed your advice but don't get anything different... –  linux Jul 19 '11 at 5:06
    
Obviously the directory must exist or you must always get a 404 for it because the server can't serve what isn't there. The reason I suggested creating the index file is because, depending on how your setup is configured, the lack of an index file may result in a 404 unless you specifically specify another file that does exist in your URL. –  John Gardeniers Jul 19 '11 at 5:11
    
@John: For a server-status? I've never had to have a physical file on disk for server-status to work. –  womble Jul 19 '11 at 5:34
    
@John Gardeniers,why is the file still required when it's handled by SetHandler server-status? –  linux Jul 19 '11 at 5:35

5 Answers 5

Because you've misconfigured something. What do your logs say about the cause of the 404? My first guess would be that ip:port isn't a valid vhost (or at least not valid for the vhost you've put the <Location /status> in, anyway), and it's probably dropping back to the default vhost. The error logs will make mention of irrational paths you didn't configure if that's the case. Other error log messages will mean different things, which is why it's so important to check them.

share|improve this answer
    
The log also says File does not exist –  linux Jul 19 '11 at 4:37
1  
Of course it does, that's why you got a 404. But what else does it say? –  womble Jul 19 '11 at 4:38
    
It doesn't say anything else. –  linux Jul 19 '11 at 4:53
1  
At the very least, it will tell you which file does not exist. –  womble Jul 19 '11 at 5:33

My guess would be that you didn't load the status module - Can you confirm it ?

share|improve this answer

This can also happen when you have a .htaccess file in the document root and that file contains a RewriteRule, as is common with CMS pretty URLs. The <Location> directives act first, but the handler is not called at this stage. So then the RewriteRule sets a handler, eg a PHP script, so SetHandler does nothing.

If this is the case, find the RewriteRule that is causing the problem, and add before it:

RewriteCond %{REQUEST_URI} !=/server-status

(Apache 2.2.22)

share|improve this answer
  • you do not need to configure a directory or path or index file
  • are you trying a different port? you shouldn't be port 80

the docs are:

<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
</Locaton>

your location differs, I would not think it should matter, but try your location as /server-status instead of just /status.

However - I think Spud is right. you have not loaded that module.

-sean

share|improve this answer

If you are using mod_rewrite and vhost configuration you need to add a blank vhost entry at the top of the vhost configuration file e.g.

<VirtualHost *:80>
</VirtualHost>

Then you can access it via the server IP address e.g. ip_address/server-status

share|improve this answer
    
Won't you also need a SetHandler server-status in that vhost? –  Ladadadada Oct 9 '13 at 12:07

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.