MeuMySQL Blog is now at http://blog.mdnsolutions.com/.

Tuesday, September 11, 2012

[OFF-TOPIC] Zend Framework - Uso de Barras (Slashes) na Url

Olá galera,

Como desenvolvedor todo dia matamos um leão. Hoje quero compartilhar uma situação que tivem com Zend Framework e os tipos de dados que tinha que trafegar na minha aplicação.


O problema

Quando tentei enviar uma variável pela url na minha aplicação em Zend Framework ela continha barras no em um parâmetro chamado grade "/BI/CV/PT". O que gerava uma url do tipo http://URL_PATH/MODULO/CONTROLLER/ACTION/id/289069/grade/BI/CV/PT. Quando eu tentava acessar essa URL recebia de retorno um bom NOT FOUND. 

Mesmo utilizando a função nativa do PHP stripslashes()  (resultando em http://URL_PATH/MODULO/CONTROLLER/ACTION/id/289069/grade/BI%2FCV%2FPT) continuava tendo o mesmo problema.


A solução

Ao pesquisar e com ajuda do @yourwebmarker descobri que se tratava de uma configuração do Apache para permitir o uso de barras codificadas. Você encontra sobre isso em http://httpd.apache.org/docs/2.2/mod/core.html#allowencodedslashes. O que fiz foi adicionar no meu arquivo de configuração do virtual host a linha AllowEncodedSlashes On e tudo funcionou perfeitamente. Exemplo:


<VirtualHost *:80>
    ServerName test.local
    DocumentRoot "/home/local/public"
    SetEnv APPLICATION_ENV "development"
    AllowEncodedSlashes On
    <Directory "/home/local/public">
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>



Abraços!

No comments:

Post a Comment