htaccess Codeigniter 中的重定向 301

CI中如何进行301重定向?我正在 CI 中创建一个新网站,我想从该网站的早期版本进行 301 重定向,其中 URL 结构看起来有点不同,所以我想重定向 htaccess 中最重要的子页面,但常规规则htaccess 不适合我,我认为是因为 paths.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]

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


慕侠2389804
浏览 64回答 1
1回答

动漫人物

您需要确保将外部重定向放置在将请求发送到 CodeIgniter 前端控制器的现有指令之前,否则,它们根本不会被处理。例如:# External redirectsRewriteRule ^oldcat1/oldcat2/oldcat3/ http://localhost/newcat1/newcat2 [R=301,L]# Front-controllerRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)$ index.php?/$1 [L]这与您可能在 CodeIgniter 中定义的路由没有任何关系,因为在调用之前.htaccess已对其进行了处理。 routes.php
打开App,查看更多内容
随时随地看视频慕课网APP