Может кто-нибудь мне помочь? Я чувствую, что сейчас уже 2 часа я ударяю головой о стену.
У меня есть Apache 2.2.8 + PHP 5.2.6
, установленный на моей машине, а .htaccess
с приведенным ниже кодом отлично работает, никаких ошибок.
RewriteEngine on
RewriteCond $1 !^(index\.php|css|gfx|js|swf|robots\.txt|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]
Тот же код на моем сервере хостинг-провайдера дает мне код ошибки 404 и выводит only: No input file specified.
index.php. Я знаю, что они установили Apache (не могут найти информацию о версии в любом месте), и они запускают PHP v5.2.8.
Я нахожусь на Windows XP 64-bit
, они запускают несколько Linux
с PHP
в CGI/FastCGI
режиме. Может ли кто-нибудь предположить, что может быть проблемой?
PS. если это важно для CodeIgniter
для работы с дружественными URL-адресами.
Update1:
mod_rewrite
установлен и включен.
Я заметил, что если я изменил значение RewriteRule
на /index.php?$1
(знак вопроса вместо прямой косой черты), он переходит в бесконечный цикл. Во всяком случае, использование вопросительного знака не является вариантом, так как CodeIgniter
(обязательно) не будет работать таким образом.
Домашняя страница также работает, когда я напрямую запрашиваю index.php: example.com/index.php
Я начинаю думать, что может быть apache, думая, что как только добавляется косая черта, это больше не файл, а папка. как изменить такое поведение?
Обновление 2:
Я ошибся.
Apache правильно обрабатывает эти URL.
Запрос http://example.com/index.php/start/
(домашняя страница) или любой другой действительный адрес.
Кажется, что Apache
просто не пересылает запрос по какой-либо причине.
Обновление 3:
Просто чтобы понять, чего я пытаюсь достичь.
Я хочу переписать такие адреса:
http://www.example.com/something/ = > http://www.example.com/index.php/something/ http://www.example.com/something/else/ = > http://www.example.com/index.php/something/else/ p >