Состояние сервера Apache возвращается 404, а затем перенаправляется на мою установку Wordpress
Я пытаюсь заставить различные плагины 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, он ищет его в /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
2 ответа
Файл WordPress .htaccess отправляет все несуществующие файлы и каталоги для обработки в Wordpress. Попробуйте исключить URL-адреса состояния сервера.
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/server-status
RewriteRule . /index.php [L]
Поскольку мне помогли с этим постом, и в случае, если вы также не смогли применить ответ, который я получил от WISWISEST, как я делал изначально, вы должны точно поставить условие
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
выше других условий.
Надеюсь, что это может помочь другим людям пришли сюда:)