我有codeigniter项目。我希望通过控制器路由所有xml扩展URL。如果我的URL获得任何.xml扩展名,它将重定向特定的控制器方法(因为我必须检查一些东西),之后它将加载该.xml文件。所以我写了
$route['(.xml)'] = "home/xml";
如果我的项目文件夹中不存在.xml文件,它会将所有.xml文件重定向到home / xml方法。如果我的项目文件夹中存在.xml文件,则它不会触发/执行home / xml,它直接加载.xml文件。那我怎么能摆脱这个问题呢? 提前致谢。
答案 0 :(得分:0)
你可以改变
$config['url_suffix'] = '';
到
$config['url_suffix'] = '.xml';
位于config.php文件中
答案 1 :(得分:0)
您可以这样做
创建一个控制器,例如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";