.htaccess URL de redirecionamento da pasta existente

3

O software em que estou trabalhando usa URLs feias. Para facilitar o compartilhamento de projetos pelos usuários (é um pacote de administração de projetos), quero ter um redirecionamento. Ele deve redirecionar projectadmin.dev/project/1234 para algum outro URL. Eu posso fazer isso funcionar no ISS usando seus arquivos web.config, mas o Apache está me dando dor de cabeça.

Para fins de demonstração, eu tenho o meu arquivo .htaccess atual, mas ainda dá o problema:

RewriteEngine On
RewriteRule ^.*project/([0-9]+)$ RandomOtherPage.php  

Quando eu acesso o url projectadmin.dev/project/123 , ele me dá um erro 403 (Proibido). Eu acho que isso acontece porque a pasta project existe no meu projeto. Quando eu mudar o arquivo .htaccess para:

RewriteEngine On
RewriteRule ^.*projects/([0-9]+)$ RandomOtherPage.php 

E vá para projectadmin.dev/projects/123 e funcionará como eu pretendia.

Minha pergunta: Como eu ignoro o fato da pasta do projeto existir, mas ainda tenho os arquivos nela acessíveis (por exemplo, projectadmin.dev/projects/image.jpg ainda deve funcionar) e ter um redirecionamento funcional com os dígitos?

    
por thomas479 16.05.2017 / 16:20

1 resposta

0

Tente desativar MutliViews . Na parte superior do seu arquivo .htaccess :

Options -MultiViews

A menos que você tenha um arquivo .htaccess localizado no subdiretório /project , que também contenha diretivas mod_rewrite, não deverá haver um problema se a pasta existir ou não.

    
por 16.05.2017 / 16:43