Codeigniter中的静态URL重写

时间:2018-01-22 09:54:04

标签: php .htaccess codeigniter url-rewriting

我的localserver中有一个codeigniter应用程序。 我需要一些URL重写规则以满足以下要求。 如果有任何人有任何解决方案,请回答。

from gi.repository import Gtk
def initListStore(laListe):
    types = []
    ligne = laListe[0]
    for mot in ligne:
      types.append(type(mot))
    leStore = Gtk.ListStore()
    leStore.set_column_types(types)
    for item in laListe:
      leStore.append(item)
    return leStore

# Appli
liste = [('Albert','Einstein'),('Salvador','Dali'),('Alexandre','Dumas')]
lsAuteurs = initListStore(liste)
for row in lsAuteurs:
    print (row[:])

http://localhost/myapp/index.php/users/login

我如何在Codeigniter中执行此操作。

2 个答案:

答案 0 :(得分:0)

config/routes.php中的此记录将执行您想要的操作 -

$route['users/login'] = 'usuarios/login'; // for login only (static)
$route['users/(:any)'] = 'usuarios/$1'; // for all routes to users (dynamic for functions without parameters)

此处有更多详情:URI Routing

答案 1 :(得分:0)

Codeigniter的工作方式是从 mycontroller 访问 myFunction ,其值为 myVarValue

http://my.webPage.com/index.php/MyController/myFunction/myVarValue

你想改变URL,是的,你可以通过在../ application / config / routes.php上创建路由

$route['my-function-(:any)'] = 'MyController/myFunction/$1';

这是第一步

您创建了路线并且这些路线无效?

  1. 在文件 ../ application / config / config.php 上设置base_url,在您的情况下将 http://localhost/myapp ,第26行关于CI v3.1.6的文件
  2. 设置默认控制器,任何进入你网站的人都会访问的默认控制器,你在 ../ application / config / routes.php 上设置,你的默认控制器可以是控制器的名称或控制器内的功能。
  3. 让我们说你有这个控制器

    public class MyController extends CI_Controller{
        public function __construct(){
            parent::__construct();
        }
        public function index(){
            echo 'Hello people, im the index of this controller,'.
                 ' im the function u will see everytime u '.
                 'access the route http://localhost/myApp/MyController';
        }
    
        public function notTheIndex(){
             echo 'Hello, im the function u will see if u'.
                  'access http://localhost/MyController/notTheIndex';
        }
    }
    

    让我们说这个控制器将是你的默认控制器,所以如ci v3.16第53行 routes.php文件中所述设置

    $route['default_controller'] = 'MyController';
    //if u want to just access the index method
    
    $route['default_controller'] = 'MyController/notTheIndex';
    //if for some reason u have a method u would like to be executed 
    //by default as the index page
    
    1. 现在你想让uris保持你的名字
    2. $route['some-beautiful-name'] = 'MyController/notTheIndex';

      所以当你访问http://localhost/some-beautiful-name时,它会显示MyController / notTheIndex的结果

      考虑一下,如果您通过<a href='some_link'>Some link</a>访问不同的页面,并且需要将href值更改为您定义的路由,如果没有,如果它们指向控制器,则它仍然有效,但uri名称将保持不变,让我们举一个例子,一些美丽的名字&#39;访问MyController / notTheIndex

      在您的视图中

      <a href="<?=base_url()?>MyController/notTheIndex">This is a link</a>
      

      该链接有效但uri名称为http://localhost/MyController/notTheIndex

      <a href="<?=base_url()?>some-beautiful-name">This is a link</a>
      

      该链接将有效,因为您定义了这样的路线,否则它将不会显示404错误,但此处显示的网址为http://localhost/some-beautiful-name

      希望我的回答能帮到你。