Запуск Apache на Mac Snow Leopard (т. Е. Включен общий доступ к сети).
Пути оцениваются неожиданными способами:
example.com/folder возвращает файл (без исключения) вместо папки.
Если я позвоню example.com/events/March и у меня есть файл events.php в моем корневом каталоге, Apache возвращает эту страницу, а остальная часть пути игнорируется.
Кроме того, этот вызов имеет приоритет над командами в .htaccess.
например. я нуждаюсь example.com/events/March перенаправить на example.com/events.php?month=March
Apache возвращается example.com/events.php без необходимого аргумента.
RewriteEngine on
RewriteRule ^events/(.+)/?$ events.php?month=$1
Если файл events.php не существует (скажем, он называется eventsHandler.php), то приведенное выше rewriteRule прекрасно работает. Итак, я знаю, что проблема не в .htaccess.
Пытался сделать видимыми расширения файлов, не помогло.
Итак, вопросы:
В MacOS косая черта («/») является допустимым символом для использования в именах файлов и не является разделителем пути. Вместо этого попробуйте использовать двоеточие в качестве разделителя пути.
Кроме того, не забудьте проверить свои пути во всем коде, от которого вы зависите, потому что иногда вы можете столкнуться с некоторым кодом, который попытается автоматически преобразовать пути после обнаружения ОС. Мы столкнулись с некоторыми подобными проблемами еще во времена Novell NetWare (не с NetWare, которая поддерживала несколько соглашений об именах файловых систем на одном томе, добавляя что-то, называемое «пространство имен» на стороне сервера, но с помощью сторонних инструментов и библиотеки, которые иногда могут ввести в заблуждение).