1

Я запускаю Apache в Mac OS X (XAMPP) для сайта, который использует .htaccess, чтобы иметь URL-адреса, такие как «domain.com/site/section/etc».

Проблема в том, что схема URL не работает. Кажется, что файл .htaccess не распознается Apache.

Однако, если я указываю виртуальный хост Apache моего Mac на версию сайта, имеющуюся в разделе NTFS (что нормально работает в Windows), то он также отлично работает на Mac. Сайт в разделе Mac является точной копией сайта в разделе NTFS (тот же .htaccess, та же БД, все).

Файл .htaccess не имеет путей (без ссылок на каталоги). Следующее является одинаковым для Mac и NTFS-версии файла:

ls -l .htaccess
-rwxrwxrwx 1 root admin 944 Oct 8 16:02 .htaccess
file .htaccess
.htaccess: ASCII English text, with CRLF line terminators

Я не понимаю, что происходит, но кажется, что копирование файла из NTFS в раздел Mac делает его бесполезным?

4 ответа4

1

Что в терминале дают вам следующие команды?

ls -l .htaccess
file .htaccess

И аналогично для версии NTFS?

И вы уверены, что в этом файле нет путей (ссылок на каталоги)?

(И, извините, спросите: вы уверены, что действительно скопировали файл, это скрытый файл в Unix? Из Терминала используйте что-то вроде cp -a old-dir new-dir , используя -a для сохранения даты и прав доступа к файлу и без /* для копирования скрытых файлов.)

Что если вы убедитесь, что в файле .htaccess на вашем Mac есть ошибка (достаточно опечатки)? Вы получаете 500 внутренних ошибок сервера при переходе на какую-то страницу? (Просто чтобы определить, полностью ли Apache игнорирует .htaccess , когда виртуальный хост настроен для просмотра раздела вашего Mac, или игнорирует только часть его содержимого ...)

И оба сайта находятся в одном и том же относительном местоположении корня Apache? (Например .../http_docs/ versus ~/Sites/ для обоих, а не ~/Sites/some/path на вашем Mac, который может иметь другие файлы .htaccess на более низком уровне)?

1

Меня не удивит, если файл .htaccess получит несколько глупых разрешений с тома NTFS, который сбрасывает apache. Попробуйте создать новый пустой .htaccess и скопируйте содержимое файла в новый; и посмотрим, как вы идете.

1

Это может быть несколько вещей.

  • Apache настроен на чтение файла .htaccess? (да, так что это не проблема)

  • Попробуйте запустить «dos2unix .htaccess» для преобразования концов строк CRLF, которые могут сбить Apache с толку. (снова неверно; при условии, что оба .htaccesses идентичны, нет причин, по которым это может повлиять на сервер в одном разделе, но не в другом)

  • Единственное, о чем я могу думать, это то, что копия не соответствовала владельцу или разрешениям нового файла. Если у Apache нет привилегий для чтения файла, он не вступит в силу.

0

Сожалею! Я настроил apache для разрешения переопределения .htaccess. :(

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .