2014-08-28 271 views
0

嗨,這是我第一次在這裏問一個問題,所以如果我的問題不清楚或我的代碼不正確大聲笑,對我有點容易。我目前上傳我的新的php mvc網站到123-reg.co.uk和即時通訊使用Apache的mod_rewrite與路由器類。它適用於當我的本地主機即時通訊,但是當它的生活,mod_rewrite被忽略,控制器無法識別,例如,如果我鍵入http://www.examplewebsite.co.uk家庭控制器加載它應該,但如果我嘗試加載不同的控制器,例如http://www.examplewebsite.co.uk/images它也需要我一個服務器錯誤404頁面。我一直試圖解決這個問題好幾天沒有成功,我已經做了一些研究,123-reg.co.uk確實支持mod_rewrite,我覺得我放棄它哈哈,任何幫助將不勝感激,在此先感謝。123-reg.co.uk網站和Apache的mod_rewrite

這是路由器類:

class Router { 

public function __construct() 
{ 
    if(empty($_GET['url'])) 
    { 
     Help::loadApplication('controllers','home'); 
     return new Home(); 
    } 
    elseif(isset($_GET['url'])) 
    { 
     $url = $_GET['url']; 
     $url = rtrim($url,'/'); 
     $url = filter_var($url,FILTER_SANITIZE_URL,true); 
     $url = explode('/',$url); 

     Help::loadApplication('controllers',$url[0]); 
     if(class_exists($url[0])) 
     { 
      $controller = new $url[0]; 

      if(isset($url[1])) 
      { 
       $methodName = $url[1]; 

       if(method_exists($controller, $methodName)) 
       { 
        $methodParams = (isset($url[2]) ? $url[2] : false); 
        $controller->{$methodName}($methodParams); 
       } 
      } 
     } 
     else 
     { 
      Help::loadApplication('controllers','home'); 
      return new Home(); 
     } 
    } 
} 

這是mod_rewrite的:

RewriteEngine On 

RewriteBase /http://www.examplewebsite.co.uk 

Options -Indexes 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.*)$ index.php/?url=$1 [QSA,L] 

更新!

任何其他人都有這個相同的問題,它不工作的原因是因爲123-reg.co.uk不支持他們的Windows軟件包上的mod_rewrite,但在那裏做的Linux軟件包,它本來是好的他們說,當我註冊Windows軟件包,但現在切換到Linux軟件包。謝謝你們的幫助!

+0

刪除'RewriteBase'行,它工作嗎? – 2014-08-28 00:48:46

+0

我已經嘗試過,它仍然不工作,它使我瘋狂,這一直是整個過程中最難的部分lol – Wisd0m 2014-08-28 00:51:23

回答

0

這值得嘗試;添加爲上述RewriteEngine On

Options +FollowSymlinks 

源的第一行:http://forum.modrewrite.com/viewtopic.php?f=4&t=2222

,我不太確定你的RewriteBase,也許應該是

RewriteBase/ 

,而不是具有完整的URL ?

+0

我也試過了,我剛剛嘗試過它,但仍然沒有成功 – Wisd0m 2014-08-28 00:53:58

+0

你試過了嗎問他們的技術支持?我在另一個問題上看到他們的一位代表告訴OP與他們聯繫尋求幫助。 – 2014-08-28 00:54:59

+0

也許'RewriteBase http:// www.examplewebsite.co.uk /'會工作,而不是主要的斜槓? – 2014-08-28 00:57:16