2015-06-19 62 views
3

在我笨應用/幫手/ MY_url_helper我希望能夠增加'?&route=' . $uri我希望能夠我'?&route='後的index.php使用,但第一個文件夾前/功能。自定義URL重定向助手用get方法

但每次我點擊我的鏈接的網址更改,但頁面保持不變?

問題:在我的幫助我如何添加'?&route=' . $uri但要它仍然每次都重定向到目前 頁,甚至當我在點擊鏈接的URL的變化,但頁面保持不變?

redirect('common/dashboard');

網址http://localhost/project/admin/?&route=common/dashboard

我與路線和同樣的問題,試了一下。

<?php 

if (! function_exists('redirect')) 
{ 
function redirect($uri = '', $method = 'auto', $code = NULL) 
{ 
    //if (! preg_match('#^(\w+:)?//#i', $uri)) 
    //{ 
     $uri = site_url('?&route=' . $uri); 
    //} 

    // IIS environment likely? Use 'refresh' for better compatibility 
    if ($method === 'auto' && isset($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS') !== FALSE) 
    { 
     $method = 'refresh'; 
    } 
    elseif ($method !== 'refresh' && (empty($code) OR ! is_numeric($code))) 
    { 
     if (isset($_SERVER['SERVER_PROTOCOL'], $_SERVER['REQUEST_METHOD']) && $_SERVER['SERVER_PROTOCOL'] === 'HTTP/1.1') 
     { 
      $code = ($_SERVER['REQUEST_METHOD'] !== 'GET') 
       ? 303 // reference: http://en.wikipedia.org/wiki/Post/Redirect/Get 
       : 307; 
     } 
     else 
     { 
      $code = 302; 
     } 
    } 

    switch ($method) 
    { 
     case 'refresh': 
      header('Refresh:0;url='.$uri); 
      break; 
     default: 
      header('Location: '.$uri, TRUE, $code); 
      break; 
    } 
    exit; 
} 
} 

的.htaccess

Options +FollowSymLinks 
Options -Indexes 
DirectoryIndex index.php 
RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

更新:

版笨使用3

在我的配置我現在用

試圖與

$config['uri_protocol'] = 'REQUEST_URI';

而且

$config['uri_protocol'] = 'QUERY_STRING';

但後來現在說找不到網頁?

頁雖然在那裏。

而且「共同」將文件夾

而且「儀表板」將控制器

所有控制器都具有的第一個字母爲大寫Dashboard.php

注:我試圖啓用查詢字符串在config.php但不工作wa我在追求。

回答

0

第一步我不得不這樣做來解決它

在routes.php文件

$get_route_method = 'route='; 
$route[$get_route_method . 'common/dashboard'] = "common/dashboard/index"; 

似乎是現在的工作很好,當我手動的application/config/route.php

添加的路由

然後在application/helper的MY_url_helper中。php $uri = site_url('index.php?route=' . $uri);

<?php 

if (! function_exists('redirect')) 
{ 
function redirect($uri = '', $method = 'auto', $code = NULL) 
{ 
    if (! preg_match('#^(\w+:)?//#i', $uri)) 
    { 
     $uri = site_url('index.php?route=' . $uri); 
    } 

    // IIS environment likely? Use 'refresh' for better compatibility 
    if ($method === 'auto' && isset($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS') !== FALSE) 
    { 
     $method = 'refresh'; 
    } 
    elseif ($method !== 'refresh' && (empty($code) OR ! is_numeric($code))) 
    { 
     if (isset($_SERVER['SERVER_PROTOCOL'], $_SERVER['REQUEST_METHOD']) && $_SERVER['SERVER_PROTOCOL'] === 'HTTP/1.1') 
     { 
      $code = ($_SERVER['REQUEST_METHOD'] !== 'GET') 
       ? 303 // reference: http://en.wikipedia.org/wiki/Post/Redirect/Get 
       : 307; 
     } 
     else 
     { 
      $code = 302; 
     } 
    } 

    switch ($method) 
    { 
     case 'refresh': 
      header('Refresh:0;url='.$uri); 
      break; 
     default: 
      header('Location: '.$uri, TRUE, $code); 
      break; 
    } 
    exit; 
} 
}