2011-12-02 91 views
1

我有一個網站正在處理/ landing-page /文件夾,我將製作一些着陸頁。我希望能夠在廣告中放置具有/lp/而不是/landing-page/的網址,並將其中的/lp/任何網址替換爲/landing-page/PHP:重定向不存在的URL的最佳方式?

這樣: www.site.com/lp/ipad-inspections 將自動重定向到: www.site.com/landing-page/ipad-inspections

我想做到這一點,而無需一個/lp/文件夾和對應每個着陸頁的第二頁。我的想法是有404頁檢查URL和重定向,但我似乎無法得到以下工作:

<?php /* Automatic redirect for landing pages */ 
$current_loc = $_SERVER['REQUEST_URI']; 
$short_lp = '/lp/'; 
$long_lp = '/landing-page/'; 
if (strpos($current_loc, $short_lp)) { 
    $current_loc = str_replace($short_lp, $long_lp, $current_loc, 1); 
    header("location: ".$current_loc); 
} 

我在做什麼錯在這裏,我的頁面快到了空白?我已將其縮小到我的if聲明的第一行,這正在使我的頁面崩潰。

如果有更好的方法來做到這一點與Apache?也許我可以在htaccess中放置一些行?

+0

我認爲'.htaccess'會比PHP更好。 – Blender

+0

假設阿帕奇,我認爲你會更好地做到這一點,使用.htaccess而不是php – rdlowrey

+0

你看過使用.htaccess進行路由嗎? – Jemaclus

回答

5
RedirectPermanent /lp /landing-page 

您.htaccess應該做的伎倆。在進入PHP階段之前,最好做這種無條件的重定向。它本質上是Apache中的一個「免費」操作,並將整個解析/編譯/執行PHP階段保存在服務器中。

+0

謝謝!我現在把它作爲'重定向301/lp// landing-page /',它做同樣的事情。 –

1

保持它,因爲你已經做到了,但包括301永久移動的標題。

header ('HTTP/1.1 301 Moved Permanently'); 
header ('Location: '.$location); 

也儘量絕對引用您的網址,以便包括http://www.domain.com/

更新

如果你想與htaccess的重定向嘗試

redirect 301 /lp/landing-page/ http://www.domain.com/new.html 
相關問題