【问题标题】:how to route all XML extension to a specific method codeigniter?如何将所有 XML 扩展路由到特定方法 codeigniter?
【发布时间】:2018-03-03 10:23:01
【问题描述】:

我有 codeigniter 项目。我想通过控制器路由所有 xml 扩展 URL。如果我的 URL 获得任何 .xml 扩展名,它将重定向特定的控制器方法(因为我必须检查某些内容),然后它将加载该 .xml 文件。所以我写了

 $route['(.xml)'] = "home/xml";

如果我的项目文件夹中不存在该 .xml 文件,它会将所有 .xml 文件正确重定向到 home/xml 方法。如果该 .xml 文件存在于我的项目文件夹中,它不会触发/执行 home/xml,它会直接加载 .xml 文件。那么我怎样才能摆脱这个问题呢? 提前致谢。

【问题讨论】:

  • 我会使用.htaccess 规则。

标签: php xml codeigniter routing


【解决方案1】:

你可以改变

$config['url_suffix'] = ''; 

进入

$config['url_suffix'] = '.xml';

在您的 config.php 文件中

【讨论】:

    【解决方案2】:

    你可以这样做

    创建一个控制器说example.php

    用方法测试

    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');
    
    class Example extends CI_Controller {
    
    public function index()
    {
    
    }
    
    public function test()
    {
         header( "Content-type: text/xml");
    
         echo "<?xml version='1.0' encoding='UTF-8'?>
         <rss version='2.0'>
         <channel>
         <title RSS</title>
         <link>/</link>
         <description>Cloud RSS</description>
         <language>en-us</language>";
    
          // while($row = mysqli_fetch_array($con,$query)){
          //  $title=$row["title"];
          //  $link=$row["link"];
          //  $description=$row["description"];
    
           echo "<item>
           <title>Title</title>
           <link>Link</link>
           <description>description</description>
           </item>";
         // }
         echo "</channel></rss>";
    
    }}
    

    然后在路由中添加

    $route['example/(:any).xml'] = "example/test";

    【讨论】:

      猜你喜欢
      • 2011-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      相关资源
      最近更新 更多