Я нахожусь в процессе создания веб-приложения MVC с использованием инфраструктуры Zend, и я столкнулся со странной проблемой.
Если у меня раздел httpd.conf VirtualHost и корневой файл .htaccess веб-сайта настроен односторонним образом, Apache не читает файл index.php (т. Е. Www [dot] mywebsite [dot] com / fails), ничего не пишет в журнал перезаписи и помещает эту ошибку в общий файл журнала ошибок:
Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /hg/software/cims/src/public/
Тем не менее, снова с теми же настройками httpd.conf и .htaccess, я могу получить доступ к своему экрану входа в систему (т. Е. Www [точка] mywebsite [точка] com / account / login успешно), и в перезаписи есть много информации журнал.
Однако, если я переместил команды перезаписи .htaccess в блок Directory в VirtualHost и установил для AllowOverride значение «Нет», произойдет обратное. Apache читает и отображает index.php (т. Е. Www [dot] mywebsite [dot] com / success), но не выводит меня на экран входа в систему и не пытается напрямую получить доступ к экрану входа в систему (т. Е. Www [dot] mywebsite [dot ] com / account / login не удается).
Thee соответствующие настройки для первого условия ошибки:
httpd.conf:
RewriteEngine On
RewriteLog /hg/hgweb/logs/appdev_rewrite.log
RewriteLogLevel 1
<VirtualHost *:80>
SetEnv ETSSERVER mywebsite
SetEnv VHOST appdev
SetEnv APPLICATION_ENV development
ServerName appdev
ServerAlias appdev.mywebsite.com
ServerPath /hg/software/appdev/src/public/
DocumentRoot /hg/software/appdev/src/public/
ErrorLog /hg/hgweb/logs/appdev_error.log
CustomLog /hg/hgweb/logs/appdev_access.log common
<Directory />
Options Indexes FollowSymLinks SymLinksIfOwnerMatch
AllowOverride All
Order Allow,Deny
Allow from All
</Directory>
</VirtualHost>
.htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Любое понимание того, что может быть причиной этого, очень ценится.