重定向htaccess Codeigniter中的301



如何在CI中执行301重定向?我正在CI中创建一个新网站,我想从早期版本的网站进行301重定向,那里的URL结构看起来有点不同,所以我想重定向htaccess中最重要的子页面,但htaccess中的常规规则对我不起作用,我认为是因为routes.php 中的条目

$route['(:any)/(:any)/(:num)'] = 'ads/cat/$1/$2/$3';
$route['(:any)/(:any)'] = 'ads/cat/$1/$2';
$route['(:any)'] = 'ads/cat/$1';

和我的htaccess文件

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

我想重定向,例如

RewriteRule ^oldcat1/oldcat2/oldcat3/ http://localhost/newcat1/newcat2 [R=301,L]

但是这个重定向不起作用。如何处理?

您需要确保将外部重定向放置在将请求发送到CodeIgniter前端控制器的现有指令之前,否则,它们将不会被处理。

例如:

# External redirects
RewriteRule ^oldcat1/oldcat2/oldcat3/ http://localhost/newcat1/newcat2 [R=301,L]
# Front-controller
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

这与您可能在CodeIgniter中定义的路由无关,因为.htaccess是在调用routes.php之前处理的。

相关内容

  • 没有找到相关文章

最新更新