【问题标题】:codeigniter: How to remove only index method in URLcodeigniter:如何仅删除 URL 中的索引方法
【发布时间】:2018-09-08 11:20:38
【问题描述】:

我在一个类中使用多种方法。我只想从 url 中删除索引,其他保持不变;

www.mysite.com/blog/index
www.mysite.com/blog/index/one/two
www.mysite.com/blog/myblog
www.mysite.com/blog/data_load/one/two

【问题讨论】:

  • 使用路由它会帮助你重写url,它会链接到类中的特定方法
  • 需要在routes.php中写规则naveedramzan.com/codeigniter-url-rewriting
  • 我尝试 naveedramzan.com/codeigniter-url-rewriting 但是当我在 404 页面上重定向博客后传递参数(字符串)

标签: php codeigniter codeigniter-3


【解决方案1】:

你需要为此设置路线。

在你的 application/config/routes.php 文件中设置路由

$route['project/user/id/(:any)'] = 'project/user/index/id/$1';

【讨论】:

    【解决方案2】:

    希望对您有所帮助:

    route.php

    $route['blog'] = 'blog/index';
    

    确保:

    在你的配置文件中设置这个:

     $config['base_url'] = 'http://localhost/foldername/';
    
     $config['index_page'] = '';
    

    【讨论】:

    • @paradeep 这个答案不足以回答他的问题!它会将所有以 blog 开头的 url 重定向到 blog/index 方法!
    【解决方案3】:

    在 application/config/routes.php 中试试这个:

    $route['blog/myblog']                   = 'blog/myblog';
    $route['blog/data_load/(.+)/(.+)']      = 'blog/data_load/$1/$2';
    $route['blog']                          = 'blog/index';
    $route['blog/(.+)']                     = 'blog/index/$1';
    $route['blog/(.+)/(.+)']                = 'blog/index/$1/$2';
    

    注意:路由将按照它们定义的顺序运行。较高的路线总是优先于较低的路线。

    【讨论】:

    • 我尝试过,但是当我在 404 页面上重定向博客后传递参数(字符串)时
    • 这取决于你需要多少个参数,如果你需要1个参数你必须添加$route['blog/(.+)'] = 'blog/index/$1/';跨度>
    • Hi Louk!!如何在没有索引的路由中传递无限参数??
    • @usman 在这种情况下检查此链接:stackoverflow.com/questions/9455374/…
    【解决方案4】:

    您也可以使用 .htaccess 文件来处理它。 创建一个 .htaccess 文件并将此代码粘贴到其中

    <IfModule mod_rewrite.c>
       RewriteEngine On
       # !IMPORTANT! Set your RewriteBase here and don't forget trailing and leading
       #  slashes.
       # If your page resides at
       #  http://www.example.com/mypage/test1
       # then use
       # RewriteBase /mypage/test1/
       RewriteBase /
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteCond %{REQUEST_FILENAME} !-d
       RewriteRule ^(.*)$ index.php?/$1 [L]
    </IfModule>
    
    <IfModule !mod_rewrite.c>
        # If we don't have mod_rewrite installed, all 404's
        # can be sent to index.php, and everything works as normal.
    
        ErrorDocument 404 /index.php
    </IfModule>
    

    【讨论】:

      猜你喜欢
      • 2023-03-04
      • 2012-11-23
      • 1970-01-01
      • 1970-01-01
      • 2017-04-05
      • 2020-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多