Aqui está minha configuração: http://example.com/directory/
Estou tentando ocultar "diretório" ao carregar páginas dentro dessa pasta. Eu atualizo meu arquivo .htaccess na raiz html para este:
Opções + FollowSymLinks
RewriteEngine on
RewriteCond% {REQUEST_URI}! (.)diretório
RewriteRule ^ (.) $ diretório / $ 1
Isso funciona muito bem ao carregar um arquivo nopasta do diretório, mas index.html na pasta raiz html não foi encontrado a menos que eu coloque-o dentro da pasta do diretório. Agradecemos antecipadamente por qualquer ajuda. Eu revi todas as perguntas e respostas de reescrita neste site!
Respostas:
0 para resposta № 1Sua regra de reescrita para mim parece que você está tomandosolicitações do diretório raiz e anexando o nome do arquivo em / diretório /. Isso explicaria por que os arquivos na raiz diretamente não estão funcionando, a menos que também estejam presentes no / diretório / pasta.
0 para resposta № 2
dougajmcdonald explicou o suficiente, mas eu explico de outra maneira, então a recompensa é dele :-)
quando você pede index.html
arquivo, mod-rewrite verifica sua condição de reescrita:
RewriteCond %{REQUEST_URI} !(.)directory
porque seu URI de solicitação é algo como /index.html
e corresponde à condição (sua condição: URI de solicitação NÃO deve começar com /directory
)
Então, mod_rewrite reescreve seu URL para um novo: directory/index.html
isso é igual a solicitar directory/index.html
por você mesmo. essa é a razão pela qual você deve colocar esse arquivo em "diretório" diretório.