виртуальный хост httpd.conf не работает
Вопрос
Я добавил это:
<VirtualHost *:8888>
ServerName dietron
DocumentRoot /Users/kieransenior/Development/reformsoft_dietron/trunk/var/www/dietron/htdocs
<Directory /Users/kieransenior/Development/reformsoft_dietron/trunk/var/www/dietron/htdocs>
AllowOverride All
Options All
</Directory>
php_value include_path .:/Users/kieransenior/Development/reformsoft_dietron/trunk/var/www/dietron/include:/usr/local/lib/pear
php_value magic_quotes_gpc off
php_value register_globals off
</VirtualHost>
в мой httpd.conf в надежде, что мой файл .htaccess в папке htdocs будет подобран в соответствии со следующими правилами:
RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1
Это все содержимое.Я переименовываю .htaccess в моем MBP, выполнив mv i.htaccess .htaccess
что, как я предполагаю, правильно?Я использую MAMP, поэтому в httpd.conf загружены настройки по умолчанию, и я добавил первый фрагмент выше в самом конце его.Затем я перезапускаю его, останавливая Apache и запуская его снова.The index.php подбирается нормально, однако, когда я делаю http://localhost:8888/anythinghere
в результате получается 404, чего не должно было произойти.
Есть какие-нибудь идеи о том, что я делаю не так?
Редактировать: Вот мой httpd.conf
Редактировать:Вот ошибка в журнале Apache:
[Fri Jun 05 16:02:22 2009] [error] [client ::1] File does not exist: /Users/kieransenior/Development/reformsoft_dietron/trunk/var/www/dietron/htdocs/testing
Решение
Пара предложений.
Во-первых, в строке 461 вашего httpd.conf:
AccessFileName afn.htaccess
Разве это не должно быть .htaccess?
Второе, что я вижу, это то, что имя сервера задано:
ServerName dietron
но вы пытаетесь получить к нему доступ с помощью localhost
Я бы посоветовал вам поместить запись в ваш файл /etc / hosts, чтобы dietron разрешал либо ваш локальный IP-адрес, либо ваш loopback (127.0.0.1), а затем получить доступ к серверу с помощью http://dietron:8888
Другие советы
Убедитесь, что ваша директива AllowOverride правильно настроена на глобальном уровне.Если переопределение не разрешено (AllowOverride None
) в вашем webroot, тогда ваш файл htaccess будет проигнорирован.