.htaccess问题:未指定输入文件

有人可以帮我弄这个吗?我感觉自己已经将头撞在墙上超过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,他们正在运行的一些LinuxPHPCGI/FastCGI模式。谁能建议可能是什么问题?

PS。如果很重要,那是为了CodeIgniter使用友好的URL。


更新1:

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/

回答:

我也反对这一点。我也在安装Code Igniter。

古怪的不是RewriteBase。这是我的.htaccess:

DirectoryIndex index.php

RewriteEngine on

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond $1 !^(index\.php|robots\.txt)

RewriteRule ^(.*)$ index.php?/$1 [L]

以上是 .htaccess问题:未指定输入文件 的全部内容, 来源链接: utcz.com/qa/409357.html

回到顶部