Sto riscontrando alcuni problemi con il passaggio di un indirizzo di posta elettronica in un URL di un'app di symfony.Symfony: indirizzo di posta elettronica come parametro di richiesta
L'url sembra
example.com/unsubscribe/email/[email protected]
Sarà sempre come risultato un sfError404Exception
, tranne quando viene rimosso il periodo. Dopo aver fatto qualche ricerca su google, l'unica soluzione che ho visto è che htaccess sta bypassando l'url a causa del periodo presente. Tuttavia, quando aggiungo la correzione suggerito di .htaccess, in questo modo:
# we skip all files with .something
RewriteCond %{REQUEST_URI} \..+$
RewriteCond %{REQUEST_URI} [email protected]+ #skip email address
RewriteCond %{REQUEST_URI} \.epl$
RewriteCond %{REQUEST_URI} !\.html$
RewriteCond %{REQUEST_URI} !\.rhtml$
RewriteRule .* - [L]
ottengo lo stesso 404. Inoltre restituisce 404 quando uso il front controller direttamente nella URL (example.com/index.php/unsubscribe/email/[email protected]
). Ho provato a mettere la versione di escape direttamente nella barra degli indirizzi, ad esempio example.com/unsubscribe/me%40example%2Ecom
e questo funziona, ma solo in Firefox, da nessun'altra parte.
Ho passato circa 2 ore in un forum a cercare l'inferno su Google a questo punto e sono a corto di idee.
Qualche idea?
Grazie.
Aggiornamento: Ecco la sezione dedicata del routing.yml:
unsubscribeform:
url: /unsubscribe/email/:email
param: { module: subscribe, action: index }
Aggiornamento: Analisi dello stack ... sembra proprio non ottenere alcuna informazione itinerario per andare a me
404 | Not Found | sfError404Exception
Empty module and/or action after parsing the URL "/unsubscribe/email/[email protected]" (/).
stack trace
1. at()
in SF_SYMFONY_LIB_DIR/controller/sfFrontWebController.class.php line 44 ...
41.
42. if (empty($moduleName) || empty($actionName))
43. {
44. throw new sfError404Exception(sprintf('Empty module and/or action after parsing the URL "%s" (%s/%s).', $request->getPathInfo(), $moduleName, $actionName));
45. }
46.
47. // make the first request
2. at sfFrontWebController->dispatch()
in SF_SYMFONY_LIB_DIR/util/sfContext.class.php line 159 ...
156. */
157. public function dispatch()
158. {
159. $this->getController()->dispatch();
160. }
161.
162. /**
3. at sfContext->dispatch()
in /home/web/htdocs/index.php line 10 ...
7. require_once(SF_ROOT_DIR.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'ProjectConfiguration.class.php');
8.
9. $configuration = ProjectConfiguration::getApplicationConfiguration(SF_APP, SF_ENVIRONMENT, SF_DEBUG);
10. sfContext::createInstance($configuration)->dispatch();
11.
+1 come penso che sarò in esecuzione in questo problema così –