Я использую простой .htaccess для обработки всего с помощью сценария PHP:
RewriteEngine on
RewriteRule . index.php
Мой index.php просто повторяет сервер переменных на данный момент (с
print_r ($ _ SERVER)
); Все работает нормально, в URL все набираю
и показано содержимое index.php . Однако, учитывая это
структура:
test/ # document root
folder/ # empty folder
index.php
.htaccess
Я заметил, что доступ к [сайт] / папка
сначала перенаправляет браузер на
[site] / folder /
, а затем показывает правильное содержимое index.php . Почему
это происходит? Разве правило перезаписи не должно перенаправлять все?
«как есть»?
Используется с виртуальным хостом, настроенным для локального тестирования веб-сайта. Сконфигурирован по минимуму. Могли ли быть другие файлы apache загружается до моего .htaccess ?
<VirtualHost *:80>
ServerName test.local
DocumentRoot /Library/WebServer/Documents/test/
</VirtualHost>
В настоящее время используется OS X 10.10.
Как определено в комментариях выше, директива DirectorySlash
управляет это конкретное поведение Apache и rewriterule не вызывали его. Эта директива по умолчанию на . Если вы установите для него значение выключено , то при запросе URI, который сопоставляется с каталогом в файловой системе без косой черты в конце, Apache не будет перенаправлять запрос на тот, который содержит косую черту в конце.
Подробнее информация в документации здесь: https://httpd.apache.org/docs/current/mod/mod_dir.html#directoryslash