Problema do .htaccess do Apache: Nenhum arquivo de entrada especificado

2

Alguém pode me ajudar com isso. Estou me sentindo como se estivesse batendo minha cabeça contra uma parede por mais de 2 horas agora.

Eu tenho o Apache 2.2.8 + PHP 5.2.6 instalado na minha máquina e o .htacces com o código abaixo funciona bem, sem erros.

RewriteEngine on
RewriteCond $1 !^(index\.php|css|gfx|js|swf|robots\.txt|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]

O mesmo código no servidor do meu provedor de hospedagem me fornece um código de erro 404 e apenas as saídas: Nenhum arquivo de entrada especificado. index.php está lá. Eu sei que eles têm o Apache instalado (não é possível encontrar informações sobre a versão em qualquer lugar) e eles estão executando o PHP v5.2.8.

Eu estou no windows xp 64-bit, eles estão executando alguns modos Linux e php no cgi / fastcgi. Alguém pode sugerir qual poderia ser o problema?

PS. se isso é importante para o CodeIgniter trabalhar com URLs amigáveis.

    
por Michal M 13.10.2009 / 00:02

3 respostas

2

acabou que eu precisava de RewriteBase:

RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|css|gfx|js|swf|robots\.txt|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]
    
por 25.01.2010 / 20:28
0
  1. Verifique novamente os finais da nova linha. O Apache é meio esquisito sobre eles no .htaccess.
  2. Desativar multiviews em .htaccess (Opções -Multiviews) conforme lido em Sheepdog IT
  3. Você sempre pode aprender mais sobre seu ambiente usando a função phpinfo ()
por 13.10.2009 / 00:45
0

Eu tive o mesmo problema ao tentar configurar uma URL amigável para o meu projeto CodeIgniter. Eu finalmente percebi isso. Vamos dar uma olhada na configuração do meu apache2:

<Directory /home/hai/www>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

O problema está na linha que disse AllowOverride None . Alterar Nenhum para Tudo e funciona:

<Directory /home/hai/www>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

Atualização: informações do meu sistema:

  • Servidor: Xubuntu 9.x (praticamente igual ao Ubuntu)
  • Apache: versão 2.2
  • A configuração em questão está em / etc / apache2 / sites-available / default

A propósito, eu sou novo em web design, php e CodeIgniter (acabei de começar o PHP na semana passada e o CodeIgniter ontem), então por favor, gentilmente aponte qualquer erro na minha resposta.

Update2: Se depois você receber o código de erro 500 em vez de 404. Isso significa que você não tem o módulo de reescrita ativado. Emita o seguinte comando para corrigi-lo:

$ sudo a2enmod rewrite
    
por 17.10.2009 / 17:57