/ / Zend Framework - não trata / public / directory como controller - zend-framework

Zend Framework - não tratar / public / directory como controller - zend-framework

É possível solicitar um diretório através de http no diretório Zend / public / sem que ele seja tratado como um controlador?

Por exemplo, eu tenho um diretório, / public / facebook / que contém dados de aplicativos do Facebook, mas o Zend é (como o comportamento padrão esperado), dando erro "controlador do Facebook ausente" quando solicito http://mysite.com/facebook.

Respostas:

0 para resposta № 1

Isso ocorre porque o RewriteRules padrão fornecido com o Zend está redirecionando todas as solicitações para o Zend Framework Bootstrapper (index.php).

A melhor coisa a fazer, IMHO, é adicionar umexceção a esta regra. Depois, há mais de uma maneira de fazê-lo. Você poderia usar o RewriteCond (e, por exemplo, evitar o redirecionamento geral para o diretório ou arquivos existentes em / public). Mas você poderia filtrá-lo também na expressão RewriteRule. Exemplo com exceção no RewritreRule, portanto sem RewriteCond:

RewriteRule !(public/facebook/(.*.php))|(public/(.*.pdf))|(externalauthent.php)|(favicon.ico)|(images/(.*.(ico|gif|jpg|png|bmp|JPG|JPEG|BMP|GIF|PNG)))|(css/(.*.css))|(js/(.*.*))$ /index.php [L]

0 para resposta № 2

Se você tem conteúdo neste url, ZF não tente encontrar o controlador do Facebook, você precisa adicionar uma pasta chamada facebook, e um arquivo index.php para esta pasta


0 para resposta № 3

Esse trabalho pra mim:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteCond %{REQUEST_URI}  !^/public_directory_name
RewriteRule ^.*$ index.php [NC,L]

Apenas substitua "public_directory_name" pelo nome do diretório que você não quer que o Zend trate como um controlador.

Respondido em uma pergunta diferente: htaccess - não reescreva neste caso