Apache server-status retornando 404, em seguida, redirecionando para a minha instalação do Wordpress

5

Estou tentando fazer com que vários plugins Apachie do Munin funcionem no meu servidor web, mas estou com problemas. Ao pedir a Munin para verificar os plugins disponíveis, dois dos três plugins do Apache retornam um erro dizendo que

apache server-status cannot be found

Eu tenho mod_status ativado etc. e, até onde eu sei, tudo está configurado corretamente.

Eu tentei abrir localhost/server-status usando Lynx , ponto em que recebo um erro 404 e minha página de erro do Wordpress é mostrada (aquela que você obtém quando tenta acessar uma página que não existe.)

Agora, presumivelmente, isso tem a ver com como eu tenho o Apache servindo uma instalação do Wordpress, etc. O site vive em /var/www/wordpress , com o arquivo index.php um nível acima e o arquivo .htaccess alterado conforme as instruções do Wordpress . Funciona bem, mas tenho a sensação de que, quando o Munin / Lynx tenta carregar localhost / server-status, ele está procurando em /var/www/ .

Então, como eu digo ao Apache onde realmente procurar quando solicitando o status do servidor?

Aqui está o meu arquivo httpd.conf.

ServerName localhost



<VirtualHost *:80>
ServerName oliverhaslam.com
ServerAlias oliverhaslam.com
DocumentRoot /var/www/wordpress/
</VirtualHost>


<VirtualHost *:80>
ServerName ojhaslam.co.uk
ServerAlias ojhaslam.co.uk
DocumentRoot /var/sites/photo365/
</VirtualHost>

<VirtualHost *:80>
ServerName www.ojhaslam.co.uk
ServerAlias www.ojhaslam.co.uk
RedirectMatch permanent /(.*) http://ojhaslam.co.uk/$1
DocumentRoot /var/sites/photo365/
</VirtualHost>

<Location /server-status>
        SetHandler server-status
        Order deny,allow
        Allow from  all
</Location>

Se eu remover a última parte, recebo um erro "proibido" em vez do erro descrito acima.

Aparece o problema é o meu arquivo .htaccess . Remover isso significa que o status do servidor funciona, mas obviamente os links do Wordpress não. Aqui está o arquivo:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

#Next two don't fix the issue.    
#RewriteCond %{REQUEST_URI} !=/server-status
#RewriteRule ^(server-info|server-status) - [L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
    
por Oliver Haslam 14.01.2013 / 02:50

2 respostas

11

O arquivo .htaccess do Wordpress envia todos os arquivos e diretórios não existentes para serem processados pelo Wordpress. Tente excluir também os URLs de status do servidor.

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/server-status
RewriteRule . /index.php [L]
    
por 16.01.2013 / 04:30
1

Desde que eu fui ajudado com este post e no caso de você também não conseguiu aplicar a resposta tornar-se, como eu fiz inicialmente, você deve exatamente colocar a condição

RewriteCond %{REQUEST_URI} !=/server-status

antes de reescrever a regra.

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} !=/server-status

RewriteRule . /index.php [L]

É por isso que Oliver Haslam ainda tem o mesmo problema, porque ele colocou o

RewriteCond %{REQUEST_URI} !=/server-status

acima de outra condição.

Espero que isso ajude outras pessoas a virem aqui:)

    
por 15.03.2017 / 06:03