reescrever um nome de pasta usando .htaccess
Pergunta
Eu estou querendo saber wether é possível usar .htaccess
para reescrever um nome de pasta.
O que quero dizer é isto.
Vamos dizer que eu tenho uma url como:
www.site.com/folder1/page.php
Agora eu quero reescrever o url para (por exemplo)
www.site.com/apple/page.php
O folder1 é uma pasta existente no meu webspace.
importante: a "maçã" não é uma pasta em vez apenas um nome
Ok aqui é um plano passo a passo:
- Os tipos de usuário
www.site.com/folder1/login.php
- A url deve reescrever e não redirecionar a url para
www.site.com/apple/login.php
Isto significa que apple
é apenas um nome e não um diretório. Todo o código deve apenas vêm de folder1. Acutally maçã deve ser apenas um alias para folder1
. Eu não posso simplesmente renomear folder1
para Apple
. Por isso mim seria apenas reescrever folder1
para apple
.
Solução
mod_rewrite só pode reescrever / redirecionamento solicitado URIs. Então você precisaria pedido /apple/…
para obtê-lo reescrito para um /folder1/…
correspondente.
Tente isto:
RewriteEngine on
RewriteRule ^apple/(.*) folder1/$1
Essa regra irá reescrever todos os pedidos que começa com o caminho /apple/…
URI internamente para /folder1/…
.
Editar Como você está realmente procurando o contrário:
RewriteCond %{THE_REQUEST} ^GET\ /folder1/
RewriteRule ^folder1/(.*) /apple/$1 [L,R=301]
Esta regra é projetado para conjunto de trabalho com a outra regra acima. Os pedidos de /folder1/…
será redirecionado externamente para /apple/…
e pedidos de /apple/…
irá então ser reescrito internamente volta para /folder1/…
.
Outras dicas
tentar:
RewriteRule ^/apple(.*)?$ /folder1$1 [NC]
Quando a pasta que você deseja que apareça na url está na primeira parte da declaração - isto é o que ele irá corresponder contra e a segunda parte 'reescreve' para sua pasta existente. os [NC] significa bandeira que ele irá ignorar as diferenças de caso por exemplo, Apple / ainda vai para a frente.
Veja aqui um tutorial: http://www.sitepoint.com/ artigo / guia-url-reescrever /
Há também um utilitário de teste bom para janelas que você pode baixar aqui: http://www.helicontech.com/download/rxtest.zip Apenas a nota para o testador que você precisa para deixar de fora o nome de domínio - de modo que o teste seria contra /folder1/login.php
para redirecionar de / folder1 para / apple tente o seguinte:
RewriteRule ^/folder1(.*)?$ /apple$1 [R]
para redirecionar e depois reescrever apenas combinar o acima no arquivo .htaccess:
RewriteRule ^/folder1(.*)?$ /apple$1 [R]
RewriteRule ^/apple(.*)?$ /folder1$1 [NC]