Я заметил странную (для меня) вещь mod_rewrite
.Исправить это не так важно для меня, как выяснить, что происходит.По сути, у меня в корне документа есть файл svg test.svg
, а также index.php
.Исходя из моего .htaccess
файла, я ожидаю, что при посещении http://localhost/test.svg
я получу файл .svg
(и он получит), а при посещении http://localhost/test/action
будет перезаписано index.php/test/action
.Вместо этого последний явно переписывается в test.svg/action
, когда я получаю сообщение
Запрошенный URL /test.svg/action не найден на этом сервере.
Вот мой .htaccess
файл:
# Turn on URL rewriting
RewriteEngine On
# Protect application and system files from being viewed
# RewriteRule ^(application|modules|system) - [F,L]
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT,L]
Я использую Apache 2.2.12 в Ubuntu (устанавливается через apt-get
).Я думаю, что мои настройки довольно стандартны, но я не уверен, какие именно директивы или файлы конфигурации будут актуальны.Я ни в коем случае не системный администратор, я просто использую этот сервер для локального тестирования и разработки.
Как я уже сказал, исправление этой проблемы будет тривиальным, я просто часто путаюсь с mod_rewrite
ихотел бы понять, что здесь происходит.