我有一个codeigniter网站,请求网址采用以下形式:
example.com/segment1/segment2/segment3 where:
segment 1 is a folder name
segment 2 is a controller name
segment 3 is a function name
我想将这些请求重新映射到:
example.com/segment2/segment3
我在我的* routes.php * config:
中试过这个$route['(:any)/(:any)/(:any)'] = "$2/$3/$1";
我浏览器地址栏中显示的请求未更改:
example.com/segment1/segment2/segment3
我该如何解决这个问题?
答案 0 :(得分:1)
您可以将其添加到.htaccess文件中(正如您提到的文件夹是静态的):
RewriteRule ^(.*)?/(.*)?$ your-folder-here/$1/$2 [L,NC]
答案 1 :(得分:0)
这会有效,但这会覆盖所有可能的URL。
$route['(:any)/(:any)'] = 'controller_name/$1/$2';
为了使其他控制器工作,你必须在上述声明之前定义
$route['other_controller_1/(:any)'] = 'other_controller_1/$1';
$route['other_controller_2/(:any)'] = 'other_controller_2/$1';