2010-12-14 73 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,以解決這個問題。