Como posso redirecionar cada solicitação de uma subpasta para index.php na mesma pasta
myserver.com/folder/subfolder1/test redirected to folder/subfolder1/index.php
myserver.com/folder/subfolder2/test redirected to folder/subfolder2/index.php
...
Adicionei um .htaccess para cada subpasta assim:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php [L,QSA]
Gostaria de redirecioná-los com um .htaccess na pasta pai:
Folder/
.htaccess <-- one redirection here
subfolder1/
index.php
subfolder2/
index.php
subfolder3/
index.php
...
subfolder n /
index.php
PS: todas as subpastas têm nomes diferentes e não seguem uma convenção de nomenclatura.
Responder1
Você só precisa ter certeza de que DirectoryIndex
está configurado corretamente no .htaccess
arquivo raiz. (O padrão é index.html
, embora muitas distros index.php
também incluam, então muitas vezes você não precisa fazer nada!)
Por exemplo:
DirectoryIndex index.php
Isso diz ao Apache (mod_dir) para procurar um index.php
arquivo no diretório solicitado (observe o caminho URL relativo) quando você solicitar o diretório diretamente.
Se o DirectoryIndex
documento (ou seja, index.php
) não for encontrado, você receberá um 403 Forbidden (assumindo que mod_autoindex esteja ativado e as listagens de diretório estejam desativadas, ou seja, Options -Indexes
).
Não há mais nada que você precise adicionar. (A menos que você realmente queira um "redirecionamento externo"?!)
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^.*$ index.php [L,QSA]
Você não precisa usar mod_rewrite. Na verdade, esta regra não fará nada aqui de qualquer maneira, desde o segundodoençaexclui explicitamente solicitações para diretórios.
Referência:
Responder2
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.+)/.*$ $1/index.php [L,QSA]
Encontrei a resposta, com esta regra toda pasta é redirecionada para index.php se o arquivo não existir.