我有一个绝对必须支持的旧版 URL,格式如下:
http://domain.com/page.php?hash=crazymd5hashhere
该站点的新版本是在 CakePHP 2.4 中完成的,所以我想将它重定向到一个实际的控制器操作并将散列参数传递给它。在 CakePHP 中实现这一点的最佳方法是什么?
我会使用 .htaccess 文件
RewriteCond %{REQUEST_URI} ^/page.php$
RewriteRule ^(.*)$ /controller_name/ [QSA,L,R=301]
您需要让服务器使用永久重定向301
代码响应新地址。这将被浏览器缓存,并告诉搜索引擎从其索引中删除旧内容。
最简单和最快的方法是page.php
在您的 webroot 中创建一个发出重定向的文件。
<?php
if(isset($_GET["hash"]))
{
$location = "/controller/action/hash:"+$_GET["hash"];
header ('HTTP/1.1 301 Moved Permanently');
header ('Location: '.$location);
}
else
{
header('HTTP/1.0 404 Not Found');
}
我也不知道它需要重定向到哪里,但这只是一个例子。