.htaccess envia solicitações para o index.php de uma subpasta

2

Eu pesquisei stackoverflow pela minha resposta, mas nada do que eu vi parece funcionar.

Eu tenho uma estrutura que envia todas as solicitações para um arquivo index.php. Tudo funciona quando eu instalo na raiz do host virtual:

http://domain/
http://domain/home
http://domain/home/index

O problema acontece quando tento instalar o framework em um subdiretório como:

http://domain/blog/

Solicitações como:

http://domain/blog/home
http://domain/blog/home/index

Todos esses pedidos devem ser enviados para o arquivo index.php que mora em / blog

Minha configuração atual é:

link - Este arquivo apenas mostra 'estamos na raiz do host virtual' O framework não está instalado lá.

link - Isso funciona bem

Quando tento acessar o link , eu recebo o arquivo roots index.php e não os frameworks. Eu recebo a mensagem "estamos na raiz do host virtual".

Eu tenho o seguinte arquivo .htaccess localizado no link

RewriteEngine on

Options Indexes FollowSymLinks -MultiViews

RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

Qualquer ajuda é muito apreciada.

Atenciosamente,

Justin

    
por manumoomoo 11.03.2010 / 10:06

4 respostas

1

A resposta que resolveu meu problema é:

RewriteEngine On

Options Indexes FollowSymLinks

RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

Parece que o Multiviews estava jogando fora.

    
por 12.03.2010 / 08:30
1
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

Significa "se não js ou ico ..." encaminhar para index.php.

Então, em essência, o seu / htaccess de nível de blog está dizendo se não é uma imagem ou um arquivo CSS redirecionando-o para /blog/index.php

    
por 11.03.2010 / 17:24
1
RewriteBase /blog

Experimente sem a barra.

    
por 11.03.2010 / 17:43
0

As solicitações com as quais você está testando para itens não existem realmente no diretório? Estas linhas:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

Signifique que qualquer solicitação de um arquivo ou diretório existente não será reescrita.

    
por 11.03.2010 / 19:38