2012-04-27 123 views
2

你好嗎?URI路由不起作用(多語言)

摘要:我試圖從本地主機遷移網站到亞馬遜EC2和幾乎任何路線帶來的「請求的URL example.com/xxx/yyy/此服務器上找到。

語境:

  • 使用笨的public_html中,應用程序的結構和系統
  • 我們b語言的URI。例如:localhost/public_html/es/main。
  • 對於測試,一頁(註冊)它的路由方式不同:localhost/public_html/admin/register。
  • 該頁面從localhost運行。

問題: 我上傳的網頁對我的EC2,當我嘗試訪問,幾乎每一頁顯示404錯誤。只是寄存器頁的作品,但只有當我通過example.com/index.php/admin/registerexample.com/admin/register攜帶相同的404錯誤)調用它。

任何意見或想法探索將是非常受歡迎的!謝謝!!

PS:如果有幫助,我會分享我目前的routes.php代碼。

$route['default_controller'] = "main"; 
$route['404_override'] = ''; 
$route['^(en|es)/(.+)$'] = "$2"; 
$route['^(en|es)$'] = $route['default_controller']; 
+2

開始尋找的重要一點是找到命中路由功能的字符串,並查看它與您定義的routes-regex的不同之處;你不需要單獨模式開始和結束? – 2012-04-27 10:35:46

回答

4

的問題是在httpd.conf,其中有 「AllowOverride」 爲的public_html(其中我有.htacces文件)設置爲「無」。我只是不得不將它更改爲全部。

非常感謝AchrafSoltani和Grigorash的嘗試,非常感謝!

3

問題:我上傳的網頁對我的EC2,當我嘗試訪問,幾乎每一頁顯示404錯誤。只是註冊頁面的作品,但只有當我通過example.com/index.php/admin/register(example.com/admin/register進行相同的404錯誤)調用它時。

這意味着要麼沒有正確設置.htaccess。默認情況下,代碼點火器依賴於index.php來處理所有的請求,但由於它在URL上看起來很醜,你應該添加一個帶有正確參數的.htaccess以將其從URL中刪除,然後從系統/應用程序打開config.php/config目錄並替換:

$config['index_page'] = 「index.php」 

$config['index_page'] = 「」 
+1

謝謝,我探討了它,但我已經有$ config ['index_page'] =「」,我的.htaccess很好。這個問題是在httpd.conf中,但無論如何,非常感謝您的幫助! – 2012-04-30 09:04:36