2015-11-26 80 views
1

是否可以設置CI,以便在進行URI匹配時遵循調用匹配類方法的標準方法,但是當沒有匹配類時調用默認的類而不是?如何在未找到類時加載默認控制器

例如,可以說我有以下控制器定義:

controllers/main.php 
controllers/page1.php 
  • 當URI是localhost/Main然後controllers/main.php類 匹配(標準CI)

  • 當URI是localhost/然後controllers/main.php類 匹配(假設默認控制器定義在 config/routes.php

  • 當URI是localhost/Page1controllers/page1.php
    類匹配(標準CI)

  • 當URI是localhost/Undefinedpage然後我想要的
    控制器/待匹配main.php。

注意我無法在config/routes中明確列出,因爲我不知道實際文字是什麼。

我也不想做通配符匹配,因爲它會阻止CI的正常運行。我也不想爲每個控制器設置一條路線 - 這很愚蠢。

404覆蓋已接近我想要的操作,但404覆蓋並不妨礙發出404 - 因此解決方案也無效。

感謝您的建議。

+0

什麼是你的CI版本? –

回答

0

config/routes.php

$route['404_override'] = 'controllers/main'; 

當過用戶訪問某些其他URL,CI將ditect,由於404和重定向到上述控制器

+0

「這不會影響到show_404()函數,它會繼續加載默認的error_404.php」? – ChronoFish

+0

你會在'404_override'中給出什麼值,它會加載 –

相關問題