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:

  1. Os tipos de usuário www.site.com/folder1/login.php
  2. 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.

Foi útil?

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]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top