2011-12-02 80 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