2013-07-23 64 views
1

我有我絕對要支持傳統的URL,這是這種格式:CakePHP的支持舊式URL

http://domain.com/page.php?hash=crazymd5hashhere 

該網站的新版本正在CakePHP的2.4完成的,所以我想重定向這對於實際的控制器動作並將其傳遞給哈希參數。在CakePHP中完成此操作的最佳方式是什麼?

回答

4

我會使用.htaccess文件

RewriteCond %{REQUEST_URI} ^/page.php$ 
RewriteRule ^(.*)$ /controller_name/ [QSA,L,R=301] 
+0

這是更好的。 :) – cgTag

+0

正是我在找什麼;謝謝! – moberemk

1

您需要讓服務器以永久重定向301代碼來響應新地址。這將被瀏覽器緩存,並且還會告訴搜索引擎從索引中刪除舊內容。

最簡單和最快的方法是在發佈重定向的webroot中創建一個page.php文件。

<?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'); 
    } 

我不知道它在哪裏需要重定向,但這只是一個例子。