我有一个网站:
mysite.com -> basic wordpress site
mysite.com/app -> php codeigniter app
mysite.com/app/profile/view/name.surname -> user profile in my codeigniter app
问题:
我想从发送请求
mysite.com/name.surname
到我的代码点火器应用程序上的"name.s姓氏"用户配置文件:
mysite.com/app/profile/view/name.surname
url段塞中的每个"个人资料"标识符在facebook上至少包含一个类似点(.(的个人资料。因此,如果任何给定的slug包含一个(.(,那么我确信它是一个用户配置文件。
实现这种行为的最佳方式是什么?
实例与视觉解释
您可以通过设置带有回调的路由来实现这一点,假设profile是您的控制器,view您的方法:
$route['(:any)']=function ($user){
$user=explode('.',$user);
if(array_key_exists(1,$user)){
// check if array has 2nd element and create route
return "profile/view/$user[0]/$user[1]";
}else{
// route to index function
return "profile/index";
}
};
在控制器配置文件的功能视图中,您可以获得如下名称和姓氏:
function view($n, $sn){
echo "name= $n; surname= $sn";
}
关于带回调的Codeigniter Uri路由
我知道你的问题指定.htaccesss,但这可能会对你有所帮助。包括一个像下面这样的index.php文件:
<?php
$uri_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$uri_segments = explode('/', $uri_path);
if(strpos($uri_segments[0],'.')===false){
include 'wordpress_index.php';
}else{
include 'codeigniter_index.php';
}
它的唯一功能是根据url第一段中是否存在点来确定加载哪个应用程序。