Apache не находит папку в файловой системе; Добавление «\ xe2 \ x80 \ x9d» в конец пути к файлу


10

У меня есть три виртуальных хоста, работающие в apache2 на моем личном Macintosh, работающем под управлением OS X Mavericks, и я впал в замешательство. Они настроены в моем файле httpd-vhosts.conf следующим образом:

<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents"
ServerName localhost
ServerAlias localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents/dev1"
ServerName dev1.local
ServerAlias www.dev1.local
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents/dev2"
ServerName dev2.local
ServerAlias www.dev2.local
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents/dev3”
ServerName dev3.local
ServerAlias www.dev3.local
</VirtualHost>

Примечание. Первая запись позволяет мне ввести «localhost» и загрузить его так, как вы ожидаете, без запуска Virtual Hosts.

dev1 и dev2 работают нормально, но я получаю сообщение об ошибке 404, в котором говорится: «Запрошенный URL / не найден на этом сервере». когда я пытаюсь загрузить dev3 на локальную машину. Все три папки Dev имеют одинаковые права доступа. Я проверил имена. Когда я проверил error_log, я нашел это:

[Пт, 24 января 12:55:07 2014] [ошибка] [клиент 127.0.0.1] Файл не существует: / Library / WebServer / Documents / dev3 \ xe2 \ x80 \ x9d

Кто-нибудь знает, почему Apache добавляет «\ xe2 \ x80 \ x9d» в конец пути к папке, или почему dev3 не загружается? (Я подозреваю, что эти случайно добавленные символы являются причинами). Любой ввод приветствуется! Спасибо за чтение!

Ответы:


16
DocumentRoot "/Library/WebServer/Documents/dev3”
                                               ^----- no proper quotation mark :9

Если у вас установлен php:

<?php
echo "\xe2\x80\x9d";

// or

echo utf8_decode("\xe2\x80\x9d");

// should give you ”

2
makes a "Not Bad" face and face palms hand through headТеперь посмотри, в этом так много смысла. Это происходит со мной и с HTML-формами ... СПАСИБО! Я целый час чесал голову об этом. Как этот символ печатается по сравнению с обычной кавычкой @DanFromGermany?
Дядя Нердикус

@UncleNerdicus зависит от вашего текстового редактора! Я действительно использую только NetBeans, notepad ++ и vi для всего, и у меня никогда не было таких проблем
Даниэль В.

1
@DavidHoude Это заставляет меня ждать еще несколько минут (глупые таймеры!), Я не забыл!
Дядя Нердикус

1
@UncleNerdicus, если вы когда-либо сталкиваетесь ^Mв конце или в конце строки, это из-за неправильного окончания строки ( \r\nchars) dos / unix / mac (есть инструменты: dos2unix и т. Д.), На всякий случай; D
Daniel W.

2
Вы не представляете, насколько огромной была моя разрядка радости, когда я прочитал это решение. Присоединяйтесь к этому сообществу только для того, чтобы поддержать это.
roberrrt-s

1

Вы пропустили VirtualHostнастройку.

NG: DocumentRoot "/Library/WebServer/Documents/dev2"

ХОРОШО: DocumentRoot /Library/WebServer/Documents/dev2


Это исправило это для меня. Спасибо
Башар Абдулла

0

DocumentRoot "/ Библиотека / WebServer / Документы"

должен быть

DocumentRoot / Библиотека / WebServer / Документы

нет "" в DocumentRoot


1
Добро пожаловать в сбой сервера! Даже если ваш ответ, вероятно, правильный, это по сути тот же ответ, который у нас уже есть.
Йорн
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.