我在与一个URL传递一个电子邮件地址到symfony的应用中的一些问题。
该网址看起来像
example.com/unsubscribe/email/me@example.com
它总是会导致sfError404Exception
,当周期被移除时除外。 做了一些谷歌搜索周围后,我所见过的唯一的解决办法是,htaccess的是绕过,因为至今这一时期的URL。 然而,当我建议的修复添加到htaccess的,就像这样:
# 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]
我得到同样的404它也返回404当我在URL(直接使用前端控制器example.com/index.php/unsubscribe/email/me@example.com
)。 我试着直接把转义版本到地址栏,如example.com/unsubscribe/me%40example%2Ecom
这个工作,但只有在Firefox中,无处。
我花了在论坛上回答约2小时,在这一点上谷歌搜索地狱,我跑出来的想法。
有什么想法吗?
谢谢。
更新:这里是routing.yml中的相关章节:
unsubscribeform:
url: /unsubscribe/email/:email
param: { module: subscribe, action: index }
更新 :堆栈跟踪...看起来像它没有得到任何路由信息去给我
404 | Not Found | sfError404Exception
Empty module and/or action after parsing the URL "/unsubscribe/email/me@example.com" (/).
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。