Состояние сервера 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

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

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

Другие вопросы по тегам