Назад | Перейти на главную страницу

Статус сервера Apache возвращает 404, а затем перенаправляет на мою установку Wordpress

Я пытаюсь заставить различные плагины Munin Apachie работать на моем веб-сервере, но у меня возникают проблемы. После запроса Munin проверить доступные плагины два из трех плагинов Apache возвращают ошибку, в которой говорится, что

Статус сервера apache не может быть найден

у меня есть mod_status включен и т.д., и, насколько я знаю, все настроено правильно.

Я пробовал открыть localhost/server-status с помощью Lynx, в этот момент я получаю ошибку 404 и отображается моя страница ошибок Wordpress (та, которую вы получаете, когда пытаетесь получить доступ к несуществующей странице).

Предположительно, это как-то связано с тем, как у меня Apache обслуживает установку Wordpress и т. Д. Веб-сайт живет в /var/www/wordpress, с index.php файл на один уровень выше и файл .htaccess изменен в соответствии с инструкциями Wordpress. Он работает нормально, но у меня неприятное ощущение, что когда Munin / Lynx пытается загрузить localhost / server-status, он ищет его в /var/www/.

Итак, как мне сказать Apache, где на самом деле смотреть при запросе статуса сервера?


Вот мой файл 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>

Если я удалю последнюю часть, я получаю «запрещенную» ошибку вместо ошибки, описанной выше.


Похоже, проблема в моем .htaccess файл. Удаление этого означает, что серверный статус работает, но, очевидно, ссылки Wordpress - нет. Вот файл:

# 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

Файл .htaccess Wordpress отправляет все несуществующие файлы и каталоги на обработку Wordpress. Попробуйте также исключить URL-адреса статуса сервера.

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

Поскольку мне помогли с этим сообщением, и в случае, если вы также не применили ответ становления мудрым, как я сделал изначально, вы должны точно указать условие

RewriteCond %{REQUEST_URI} !=/server-status

перед правилом перезаписи.

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

RewriteCond %{REQUEST_URI} !=/server-status

RewriteRule . /index.php [L]

Вот почему у Оливера Хаслама до сих пор та же проблема, потому что он поставил

RewriteCond %{REQUEST_URI} !=/server-status

выше других условий.

Надеюсь, это поможет другим людям прийти сюда :)