PHP 通配符重定向脚本


PHP wildcard redirection script?

所以我只是将我的网站从/blog移动到/(根)目录。现在,对于那些知道以前的/blog URL的人,我想将他们重定向到新的URL(/)。

所以我把这个索引.php文件放在/blog 目录中:

<?php
header( 'Location: http://www.abc.com' ) ;
?>

它有效。但我想要这个:当用户从旧网址(如 http://abc.com/blog/sample-post)访问任何博客文章时,而不是重定向到 abc。com,它应该重定向到 ABC。com/sample-post

我认为也可以通过 .htaccess 重定向来完成,但我不知道 htaccess 方法。

请给我这个:)的代码

<?php
$uri=$_SERVER['REQUEST_URI'];
$newuri=preg_replace('|'/blog(.*)|', '', $url);
header( 'Location: http://www.abc.com'.$newuri);
?>

我认为这会起作用

未测试,但这应该在 .htaccess 文件中工作

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.abc.com [OR]
RewriteCond %{HTTP_HOST} ^abc.com
RewriteRule ^blog/(.*)$ http://www.abc.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^blog.abc.com
RewriteRule ^blog/(.*)$ http://www.abc.com/$1 [L,R=301]
RewriteRule ^blog/(.*)$ $1

这需要在根文件夹中,或者应用于主 Apache 配置(而不是在 .htaccess 中)。

关于.htaccess重定向的通常规则适用 - 包括RewriteEngine on,Options FollowSymLinks和AllowOverride FileInfo包含在某处。详情请见 http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule。