Это меня немного смущает.
Я использую сервер LAMP с Zend Framework. Я потратил много времени, просматривая журналы ошибок, чтобы попытаться устранить любые ошибки / ошибки программирования.
Большинство моих ошибок на сайте сделаны, но я посмотрел в общий журнал ошибок Apache:
/var/log/apache2/error.log
И я вижу много, почти постоянных, ошибок для «Файл не существует», таких как следующие (упрощено для краткости):
[date] [error] [client #:#:#:#] File does not exist: /var/www/sites/[website folder]/public/explore
[date] [error] [client #:#:#:#] File does not exist: /var/www/sites/[website folder]/public/where-to-buy
[date] [error] [client #:#:#:#] File does not exist: /var/www/sites/[website folder]/public/products
И так далее. Эти папки не существуют, поскольку предполагается, что все запросы перенаправляются в файл index.php и обрабатываются Zend Framework. Фактические контроллеры и действия существуют, так что каждый собирается:
http://www.example.com/explore
или
http://www.example.com/where-to-buy/
получит правильную страницу через Zend Framework.
Но я не понимаю, почему происходят все эти ошибки?
Если вы считаете, что это может иметь какое-то отношение к файлу .htaccess, который перенаправляет большинство запросов (исключая таблицы стилей, документы, изображения и т. Д.) В сценарий index.php. Вот как выглядит моя шахта:
RewriteEngine On
# make sure all requests go to 'www' sub-domain
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
# Zend Framework, redirect requests to index.php
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Apache пытается сначала разрешить запрос через актуальный каталог, а затем передать запрос в index.php? Что вызывает ошибку запроса?
Я также не уверен, почему это сбрасывается в журнал ошибок по умолчанию вместо журнала ошибок или конкретного сайта. Другими словами, у меня есть журналы ошибок для каждого домена, такие как «example.com_error.log». Это может быть еще одним указанием на проблему. Это может быть последовательность, так как «error.log» устал от сайта «по умолчанию».
Спасибо за понимание!
Fozzy