Виртуальный хост 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 и запуская его снова. index.php загружается нормально, однако, когда я делаю http://localhost:8888/anythinghere, появляется ошибка 404, чего быть не должно.

Любые идеи о том, что я делаю неправильно?

EDIT: http://pastebin.com/m563537b1

EDIT: Вот ошибка в журнале 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

person Kezzer    schedule 04.06.2009    source источник
comment
Вы проверяли логи апача? вы также можете установить RewriteLog и RewriteLogLevel, чтобы увидеть, что происходит. но эти две директивы должны войти в ваш виртуальный хост, а не в файл .htaccess.   -  person Philippe Gerber    schedule 05.06.2009
comment
Я продублировал эту конфигурацию на своей машине, и она работает нормально. Вы проверяли журнал ошибок на наличие подсказок?   -  person Steve Madsen    schedule 05.06.2009
comment
Какой и где журнал ошибок?   -  person Kezzer    schedule 05.06.2009


Ответы (2)


Несколько предложений.

Во-первых, в строке 461 вашего httpd.conf:

AccessFileName afn.htaccess

Разве это не должно быть .htaccess?

Второе, что я вижу, это то, что имя сервера установлено:

ServerName dietron

но вы пытаетесь получить к нему доступ с помощью localhost

Я предлагаю вам поместить запись в ваш файл /etc/hosts, чтобы Dietron разрешал либо ваш локальный IP-адрес, либо ваш loopback (127.0.0.1), а затем получить доступ к серверу с помощью http://dietron:8888

person chris    schedule 06.06.2009
comment
Вот что я получаю за то, что весь день смотрю на httpd.conf. Спасибо, сэр. - person Kezzer; 07.06.2009

Убедитесь, что ваша директива AllowOverride правильно установлена ​​на глобальном уровне. Если на вашем веб-сайте не разрешено переопределение (AllowOverride None), то ваш файл htaccess будет проигнорирован.

person Rob Wilkerson    schedule 04.06.2009
comment
Я предоставил ссылку на мой фактический httpd.conf, расположенный в Applications/MAMP/conf/Apache/ - person Kezzer; 05.06.2009
comment
Значение вашей директивы NameVirtualHost должно соответствовать конфигурации вашего виртуального хоста: NameVirtualHost *:888 ‹VirtualHost *:8888› ... ‹/VirtualHost› Посмотрите, решит ли это всю проблему. - person Rob Wilkerson; 05.06.2009
comment
К сожалению, это тоже не сработало. Возможно, мне действительно следует установить Apache и MySQL локально, а не использовать MAMP? Так у меня будет больше контроля над ним. - person Kezzer; 05.06.2009
comment
Для целей конфигурации, если у вас есть доступ к вашему httpd.conf, у вас есть полный доступ к Apache. В итоге я сам использовал версию для MacPorts, но по другим причинам. У вас уже есть полный доступ к конфигурации. Я заметил опечатку в моем комментарии выше, если вы не заметили: NameVirtualHost *:8888 (4 восьмерки, а не 3). - person Rob Wilkerson; 08.06.2009