这是CI中的控制器
class Welcome extends Controller {
function Welcome()
{
parent::Controller();
}
function index()
{
}
function bil($model='')
{ }
我想重写一遍
http://example.com/index.php/welcome/bil/model
成为
http://example.com/model
在我的htaccess中我有
RewriteBase /
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/welcome/$1 [L]
#RewriteRule ^(.*)$ /index.php/welcome/bil/$1 [L]
我认为它应该像删除/index.php/welcome/部分一样简单 但是当我取消注释最后一行时,它会出现 500内部服务器错误
答案 0 :(得分:0)
您需要使用mod_rewrite删除index.php文件,就像上面一样,但使用CodeIgniter's routing features将example.com/model
重新路由到example.com/welcome/bil/model
。
在routes.php配置文件中,您可以定义一条新路由,如下所示:
// a URL with anything after example.com
// will get remapped to the "welcome" class and the "bil" function,
// passing the match as a variable
$route['(:any)'] = "welcome/bil/$1";
然后,输入example.com/abc123
将等同于example.com/welcome/bil/abc123
。
请注意,URL中只允许$config['permitted_uri_chars']
(位于config.php文件中)允许的字符。
希望有所帮助!