Symfony: E-Mail-Adresse als Anforderungsparameter

Ich habe einige Probleme mit der Übergabe einer E-Mail-Adresse in einer URL an eine Symfony-App.

Die URL sieht aus wie

example.com/unsubscribe/email/[email protected]

Es wird immer zu einem führensfError404Exception, außer wenn der Punkt entfernt wird. Nachdem ich ein bisschen gegoogelt habe, ist die einzige Lösung, die ich bisher gesehen habe, dass htaccess die URL wegen des vorhandenen Zeitraums umgeht. Wenn ich jedoch die vorgeschlagene Korrektur zu htaccess hinzufüge, wie folgt:

# we skip all files with .something
RewriteCond %{REQUEST_URI} \..+$
RewriteCond %{REQUEST_URI} !@.+    #skip email address
RewriteCond %{REQUEST_URI} \.epl$
RewriteCond %{REQUEST_URI} !\.html$ 
RewriteCond %{REQUEST_URI} !\.rhtml$
RewriteRule .* - [L]

Ich erhalte die gleichen 404. Es gibt auch 404 zurück, wenn ich den Front-Controller direkt in der URL verwende (example.com/index.php/unsubscribe/email/[email protected]). Ich habe versucht, die maskierte Version direkt in die Adressleiste zu stellen, zexample.com/unsubscribe/me%40example%2Ecom und das funktioniert, aber nur in Firefox, nirgendwo anders.

Ich habe ungefähr 2 Stunden im Forum verbracht, um die Hölle zu googeln, und mir gehen die Ideen aus.

Irgendwelche Gedanken?

Vielen Dank.

Update: Hier ist der relevante Abschnitt der routing.yml:

unsubscribeform:
  url:  /unsubscribe/email/:email
  param: { module: subscribe, action: index }

Aktualisieren: Stack trace ... sieht so aus, als würde er keine Routeninformationen für mich erhalten

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.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage