我希望使用 URL 缩短方案,我希望变量位于 URL 的第一段 www.example.com/0jf08h204 中。我的默认控制器是“home.php”,并且我有 .htaccess mod-rewrites,那么管理它的最佳方法是什么?我想我的智能已被标准 /controller/method/variable 方案阻止,这是 URI 协议设置吗?谢谢!
问问题
1878 次
3 回答
4
补充马修的回应。
这是您的system/application/config/routes.php
文件中需要的:
$route['(:any)'] = "home";
这将重定向一切。
如果您有其他需要使用的控制器,您可能不想重定向所有内容。如果是这种情况,您可以改用这个正则表达式:
$route['^(?!about|contact)\S*'] = "home";
这将允许您重定向除控制器“about”或“contact”之外的所有内容——这些将被定向到“about.php”和“contact.php”控制器。
请注意,我选择不在 CodeIgniter 中使用通配符,您可能会发现它们更适合您,但是我选择在重定向后手动解析 $_SERVER['REQUEST_URI']。但是,如果您想使用通配符,您只需添加/$1
到路由中,如您在 Matthew 的回复中看到的那样。
于 2010-08-04T14:26:54.800 回答
1
于 2010-08-04T13:58:35.700 回答
0
好吧,尽管将某些区域列入白名单似乎有点不标准,而且我仍然在思考如何处理 404 错误,但这里有一种方法目前正在使用来自进化的正则表达式。我的 home.php 控制器文件:
家庭类扩展控制器{
function Home()
{
parent::Controller();
$uri = uri_string();
if(!empty($uri)) {
$uri_array = explode('/',$uri);
$first_segment = $uri_array[1];
if(isset($first_segment)) {
//do stuff, load alternative view
}
}
}
function index()
{
$this->load->view('home_view');
}
}
/* EOF */
感谢您的帮助,如果可用,请发布替代解决方案。
于 2010-08-04T16:07:23.473 回答