.htaccess问题:未指定输入文件
有人可以帮我弄这个吗?我感觉自己已经将头撞在墙上超过2个小时了。
我已经Apache 2.2.8 + PHP 5.2.6
安装在机器上,.htaccess
下面的代码可以正常工作,没有错误。
RewriteEngine onRewriteCond $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。
更新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.phpRewriteEngine 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