5

Sto utilizzando il file standard Zend /public/.htaccess (mostrato di seguito).Il parametro con codifica URL interrompe le regole di riscrittura Zend predefinite

Al momento sto cercando di avanti all'utente ad una specifica di controllo/azione, e forniscono l'URL on-successo-reindirizzamento come parametro URL.

L'URL risultante (assemblato & codificati tramite vista URL aiutante di Zend) si presenta così:

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

Tuttavia questo schema apparentemente viola il default, Zend regole pacchetto mod_rewrite: l'accesso alla URL cede uno standard Apache 404 errore; Zend non riceve la richiesta.

Quando il parametro finale è manualmente riformato come segue, la richiesta funziona come desiderato:

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

Tuttavia ciò richiede un processo di generazione URL hackish due fasi. Sarebbe ideale se l'URL prodotto dall'assistente di visualizzazione funzionasse in modo indipendente.

Cosa si può fare per consentire il passaggio della codifica dell'URL? Qualsiasi intuizione sarebbe apprezzata!

Questi sono il contenuto del mio .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] 

Abilitazione RewriteLog in questo modo produce alcuna uscita per il modello in mancanza:

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

ho tentato le soluzioni proposte dai seguenti due Q & Un di, con nessun cambiamento:

+0

Questa soluzione proposta non ha avuto alcun effetto: http://stackoverflow.com/questions/6520484/mod-rewrite-urlencoding-an-already-urlencoded-querystring-parameter-any-way-to - aggiungi la direttiva 'NE' per 'RewriteRule' –

risposta

3

AllowEncodedSlashes On risolto questo per me, utilizzando l'URL test esatto. Tuttavia, come da http://httpd.apache.org/docs/2.0/mod/core.html#allowencodedslashes, questa direttiva deve essere nella configurazione del server o vhost. non funziona nel file .htaccess.

Personalmente vorrei andare con la soluzione stringa di query. Potresti ampliare ciò che intendi con questo processo di generazione di URL in due fasi? Avrei pensato che la sintassi sarebbe stata abbastanza simile all'utilizzo del normale URL helper.

+0

Abbastanza sicuro. L'impostazione di questa direttiva in '/ etc/apache2/apache2.conf' - il mio tentativo originale - non ha avuto alcun effetto. Ho appena provato ad impostarlo nell'host virtuale ('/ etc/apache2/sites-available/default') e ha avuto successo. Grazie! –

Problemi correlati