一.URL 大小写
windows 平台,URL 中的大小写会自动忽略
而 Linux 平台,如果大小写错误,会导致无法定位到指定的模块、 控制器
//URL可以不区分大小写
'URL_CASE_INSENSITIVE' =>true
如果开启了不区分大小写,那么对于 UserTypeController.class.php 这样的控 制器就需要如下访问方式: http://localhost/php004/index.php/home/user_type/index/
如果区分大小写,则是这样:
http://localhost/php004/index.php/Home/UserType/index
//设置伪静态后缀,默认为html
'URL_HTML_SUFFIX'=>'shtml',
http://localhost/php004/User/index.shtml
//如果设置为空,那么就任意后缀
'URL_HTML_SUFFIX'=>'',
//设置可以伪静态的后缀
'URL_HTML_SUFFIX'=>'html|shtml|xml',
//禁止访问的后缀
'URL_DENY_SUFFIX' => 'html|pdf|ico|png|gif|jpg',
两个同时设置 为空白页
URL 生成
,ThinkPHP 内置了一个 U()方法,用于 URL 的动态生成。 定义格式:U('地址表达式',['参数'],['伪静态后缀'],['显示域名'])
//默认得到当前URL echo U(); // /php004/User/index.html
地址表达式的格式如下: [模块/控制器/操作#锚点@域名]?参数 1=值 1&参数 2=值 2...
//控制器+方法
// echo U('Member/add');
/php004/index.php/Member/add.html
//控制器+方法+?参数1=值1
echo U('Member/add?id=5');
/php004/index.php/Member/add/id/5.html
//使用数组参数1=值1,参数2=值2
echo U('Member/add',array('id'=>6,'type'=>'a'));
/php004/index.php/Member/add/id/6/type/a.html
//设置'URL_MODEL'=>0,普通模式后URL生成将如下: ///php004/index.php?m=&c=User&a=add&id=5
//设置'URL_MODEL'=>1,PATHINFO模式后URL生成将如下: ///php004/index.php/User/add/id/5.html
//设置'URL_MODEL'=>2,REWRITE模式后URL生成将如下: ///php004/User/add/id/5.html
将生成的url 中的index.php忽略掉了
使用 REWRITE 重写模式 可以生成路由地址,使用路由的规则生成的地址
//规则路由 'm/:id\d'=>'Member/add',
//生成规则路由地址
echo U('/m/5');
/php004/m/5.html m表示:Member/add 5 => id= 5
//生成正则路由地址
'/^u_(\d+)$/'=>'Member/add?id=:1',
echo U('/m_5');
/php004/m/5.html
正则路由配合伪静态 大U方法 生成极短路径
//域名支持
echo U('User/[email protected]?id=5');
//http://www.baidu.com/php004/index.php/Member/add/id/5.html
//锚点支持 echo U('v/add#comment?id=5');
/php004/Member/add/id/5.html#comment
//在模版中使用U()方法 {:U('User/add', array('id'=>5))}
/php004/index.php/User/add/id/5.html