PHP:重定向不存在的URL的最佳方法?

Mar*_*ney 1 php url redirect

我有一个网站,我正在使用/ landing-page /文件夹,我将制作一些登陆页面.我希望能够放置有广告/lp/而不是/landing-page/广告的网址,并将其中的任何网址/lp/替换为/landing-page/.

因此:www.site.com/lp/ipad-inspections将自动重定向到:www.site.com/landing-page/ipad-inspections

我想这样做,没有/lp/与每个登录页面对应的文件夹和第二页.我的想法是让404页面检查网址并重定向,但我似乎无法让以下工作:

<?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);
}
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么,我的页面空白了?我把它缩小到我的if声明中的第一行,这是崩溃我的页面.

如果用apache有更好的方法吗?我可以在htaccess中放一些线路吗?

Mar*_*c B 5

RedirectPermanent /lp /landing-page
Run Code Online (Sandbox Code Playgroud)

在你的.htaccess应该做的伎俩.最好在它到达PHP阶段之前进行这种无条件重定向.它本质上是Apache中的"自由"操作,并为您的服务器保存整个解析/编译/执行PHP阶段.