繁体   English   中英

在 htaccess Codeigniter 中重定向 301

[英]Redirect 301 in htaccess Codeigniter

如何在 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM