0
即時通訊嘗試構建我的mvc框架,並且即時通訊遇到有關url的一些問題。php mvc網址操作
我已經設置我的.htaccess文件,我可以檢索URL並將其分解爲數組。
我的問題是,當我開始點擊我的網頁上的鏈接時,我的框架不斷將它們添加到網址,我結束了一個很長的網址,我的框架無法使用找到正確的控制器。
EX:
在我的網站的根目錄下的網址是:
本地主機/根
當我點擊一個鏈接,在第一時間,將URL更改爲:
localhost/root/controller/model/params
如果我點擊另一個鏈接,我的網址將是:
本地主機/根/控制器/模型/參數/控制器/模型/參數< - 這裏是我得到的問題,因爲網址沒有適當的框架來使用它。
我不知道問題是在.htacces還是在我的框架中。
Options -MultiViews
RewriteEngine On
Options -Indexes
RewriteBase /root
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
和我的主要PHP文件是:無論我在我的網頁我想要的網址總是被本地主機/根
我的.htaccess我希望能夠做的是:
class main {
protected $controller ="_default";
protected $method ="_getDefaultView";
protected $params;
public function __construct(){
$url = $this->parseUrl();
if(file_exists('app/controllers/'.$url[0].'.php')){
$this->controller = $url[0];
unset($url[0]);
}
require_once('app/controllers/'.$this->controller.'.php');
$this->controller = new $this->controller;
if(method_exists($this->controller, $url[1])){
$this->method = $url[1];
unset($url[1]);
}
$this->params = $url ? array_values($url) : [];
call_user_func([$this->controller, $this->method], $this->params);
}
public function parseUrl(){
if (isset($_GET['url'])){
return $newUrl = explode('/', filter_var(rtrim ($_GET['url'], '/'), FILTER_SANITIZE_URL));
}
}
}
幫助表示讚賞。 :-)
這可能是因爲你正在構建您的網址的像''url當你點擊它,它變成'本地主機/根/控制器/模型/ PARAMS /控制器/模型/ params'嘗試'url' – maniteja
如果我這樣做,我去本地主機/控制器/模型/參數不localhost /根/控制器/模型/參數 – user3838212
@maniteja與你的消化我得到它的工作,所有我補充要做的是構建與/ root/controller/model/params鏈接。謝謝你的幫助。 – user3838212