apache - acesso proibido para alguns arquivos estáticos

1

Estou tendo dificuldades com a diretiva .htaccess. Eu estou tentando ter reescrita URL para o framework Codeigniter.

Tudo funciona como esperado no servidor de produção, mas não consigo configurar meu próprio servidor de teste.

Servidor de teste:

a regravação de url funciona muito bem, os arquivos php são renderizados como esperado, mas todos os arquivos incluídos via HTML (css, js, img) não são exibidos, pois não são acessíveis devido a:

403 Forbidden
You don't have permission to access /path/to/file/plugins-min.css
on this server.

aqui está o meu arquivo .htaccess:

RewriteEngine On

# Do not enable rewriting for files or directories that exist
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# For requests that are not actual files or directories,
# Rewrite to index.php/URL
RewriteRule ^(.*)$ index.php/$1 [PT,L]

esta é a configuração do apache2 para minha pasta de documentos:

<Directory /document/folder/>
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    AllowOverride All
    Order deny,allow
    Allow from all
</Directory>

quando eu defino AllowOverride para None , ou seja, não reescrevo URLs, os arquivos estáticos são mostrados corretamente.

Quando as imagens são carregadas via script, elas são mostradas na página, mesmo que tenham as mesmas permissões / proprietários / grupos dos outros arquivos que não são acessíveis.

Tudo tem as mesmas permissões e proprietários no site.

Espero que minha pergunta esteja clara o suficiente e eu esteja procurando uma maneira de fazer tudo funcionar conforme o esperado.

Acho que minha configuração do Apache tem algo que impede que os arquivos ' incluídos Html ' sejam acessados como o log de erros do Apache diz:

[Wed Aug 17 22:29:24 2011] [error] [client <MY IP>] client denied by server
configuration: /var/www/site.com/application/assets/js/admin.js, 
referer: http://<MY IP>/site.com/page/edit/

Obrigado antecipadamente

    
por Dalen 25.08.2011 / 16:47

3 respostas

1

É muito comum usar o AllowOverride All para localizar arquivos .htaccess em outros diretórios acima do local em que você está trabalhando e que afetam sua configuração. Por o fio de comentário postando esta resposta para coletar a recompensa. Aqui está um exemplo do comando find:

encontre DocumentRoot -name .htacccess -print

Imprimirá qualquer outro arquivo .htaccess.

    
por 28.08.2011 / 16:05
1

Encontre todos os arquivos .htaccess com:

find /var/www/ -name .htaccess

Como uma alteração temporária:

Order deny,allow
Allow from all

para:

Order allow,deny
Allow from all

para garantir que não haja regras Deny processadas antes.

    
por 28.08.2011 / 05:48
0

Adicione as seguintes regras à configuração do Apache dentro da seção:

Allow from 127.0.0.1
Allow from localhost
    
por 27.08.2011 / 22:34