5

Estoy usando el archivo estándar Zend /public/.htaccess (que se muestra a continuación).El parámetro con codificación URL rompe las reglas de reescritura Zend predeterminadas

En este momento estoy tratando de adelante el usuario a un controlador/acción específica, y suministrar la URL en el éxito de redirección como un parámetro de URL.

La URL resultante (montado & codificado a través de vista URL ayudante de Zend) tiene el siguiente aspecto:

localhost/crop/index/successRedirect/localhost%2Fprofile%2Fbasic 

Sin embargo, este patrón aparentemente viola el valor predeterminado, las reglas de paquete mod_rewrite Zend: el acceso a la URL se obtiene un Apache estándar 404 error; Zend no recibe la solicitud.

Cuando se manualmente re-formado El parámetro final de la siguiente manera, la solicitud funciona como deseado:

localhost/crop/index/?successRedirect=localhost%2Fprofile%2Fbasic 

Sin embargo esto requiere una, de dos etapas proceso de generación de URL hacker. Sería ideal si la URL producida por el asistente de visualización funcionara de manera independiente.

¿Qué se puede hacer para permitir el paso de la codificación de URL? ¡Cualquier idea sería apreciada!

Estos son los contenidos de mi .htaccess

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

Activación RewriteLog como tal no produce ninguna salida para el patrón en su defecto:

RewriteLogLevel 9 
RewriteLog "<path>/rewrite.log" 

He intentado las soluciones propuestas por los dos siguientes Q Una de &, sin cambios:

+0

Esta solución propuesta tampoco tuvo ningún efecto: http://stackoverflow.com/questions/6520484/mod-rewrite-urlencoding-an-already-urlencoded-querystring-parameter-any-way-to - add 'NE' directive para 'RewriteRule' –

Respuesta

3

AllowEncodedSlashes On fijado esto para mí, usando su URL prueba exacta. Sin embargo, según http://httpd.apache.org/docs/2.0/mod/core.html#allowencodedslashes, esta directiva debe estar en la configuración del servidor o vhost. no funciona en el archivo .htaccess.

Personalmente, me gustaría ir con la solución de cadena de consulta. ¿Podría ampliar lo que quiere decir con este proceso de generación de URL en dos pasos? Pensé que la sintaxis sería muy similar a usar el asistente de URL normal.

+0

Efectivamente. Establecer esta directiva en '/ etc/apache2/apache2.conf' - mi intento original - no tuvo efecto. Solo intenté configurarlo en el host virtual ('/ etc/apache2/sites-available/default') y fue exitoso. ¡Gracias! –

Cuestiones relacionadas