2010-12-14 51 views
0

手头总结问题的最简洁的方式时:Symfony的1.4路由问题使用的index.php和mod_rewrite的

  • 发展结束了,一切都在开发和测试过程中

    对frontend_dev.php运行

    这意味着,所有的URL是:server.com/frontend_dev.php/module/action/parm

  • 移动到生产装置的切换环境中,并使用正是如此印出x.php代替
    server.com/index.php/module/action/parm

  • 移动到生产的一部分的Apache2下使用mod_rewrite使URL消失的“的index.php”的一部分,但仍在工作
    server.com/module/action/parm仍对路由的index.php

  • 的网址确实出现W/O的index.php的一部分,但symfony的路由现在抱怨:
    即,server.com/goals哪条路线进入目标/ index
    - 完全正常使用frontend_dev.php或index.php的作为显式控制器
    server.com/index.php/goals
    - 使用没有显式控制器(经由改写):
    [星期二十二月14 12点59分51秒2010] [错误] [客户75.16.181.113]

我已经验证了重写空模块和/或解析URL后行动 “/两球/”(/)确实通过将重写改为不存在的路由到index.php:
[星期二12月14日13时05分43秒2010] [错误] [客户75.16.181.113]脚本 '/opt/www/projects/adam/web/index2.php' 未找到或者无法统计

我尝试重新路由到frontend_dev.php,但只提供了更多来自symfony的调试信息,其中没有一个对您有帮助:

404 |未找到| sfError404Exception解析URL“/ goals /”(/)后为空模块和/或操作。
堆栈跟踪
1.在()中SF_SYMFONY_LIB_DIR /控制器/ sfFrontWebController.class.php线44 ...
2.在sfFrontWebController->调度()在SF_SYMFONY_LIB_DIR/UTIL/sfContext.class.php线170。 ..
3. sfContext->在SF_ROOT_DIR /网络/ frontend_dev.php 13号线调度()...

我曾尝试使用.htaccess中的RewriteBase选项,但这并不能帮助任何,也不改变控制器的配置行中的真/假

我希望这提供足以理解为什么我们感到困惑,并能够指导我们解决问题。

以下是当前的。htaccess以及索引/前端配置线

的index.php:

$配置= ProjectConfiguration :: getApplicationConfiguration( '前端', '督促',假);

Frontend_dev.php:

$配置= ProjectConfiguration :: getApplicationConfiguration( '前端', 'dev的',TRUE);

的.htaccess:

RewriteEngine叙述在

#取消注释以下行,如果你有麻烦 #得到no_script_name工作 #RewriteBase/

#我们跳过所有.something #RewriteCond%{REQUEST_URI} .. + $ #RewriteCond%{REQUEST_URI}!.html $ #RewriteRule * - ([^] +)[L]

#我们检查的.html版本在这里(缓存) 重写规则^ $的index.html [QSA] 重写规则^ $ $ 1.HTML [QSA] 的RewriteCond%{} REQUEST_FILENAME!-f

#没有,所以我们重定向到我们的面网控制器 重写规则^(。*)$的index.php [QSA,L]

+0

symfony似乎很抱歉,当请求被正确重写时找不到路由 - 您是否尝试通过index.php直接将路由配置转储到您的浏览器?并手动清除缓存,也许?另外,尝试重写你的index2.php并让它打印查询。 – cvaldemar 2010-12-14 23:50:05

+1

你可以发布你的routing.yml吗? – Vojta 2010-12-16 00:08:30

回答

0

欢迎堆栈溢出。

也许你在将“索引”路由与“index.php”混淆?

这些URL理论上应该都可以工作。

server.com/frontend_dev.php/goals/index 
server.com/index.php/goals/index 
server.com/goals/index 
server.com/goals 

我不记得末尾的斜线是否像server.com/goals/一样有效。那里有一个问题。

+0

尾部的斜线不应该在那里... – Vojta 2010-12-16 00:05:57

1

我有类似的问题,并在虚拟主机的配置中为Symfony的WEB文件夹设置'AllowOverride'为ALL,以解决这个问题。