PHP通配符重定向脚本?

时间:2013-09-15 13:22:19

标签: php redirect

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

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

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

它有效。但我希望如此:当用户访问来自旧网址的任何博文时,如http://abc.com/blog/sample-post,而不是重定向到abc。 com,它应该重定向到abc。 COM /样品交

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

请给我代码:)

3 个答案:

答案 0 :(得分:1)

未经测试,但这应该在.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]

答案 1 :(得分:0)

RewriteRule ^blog/(.*)$ $1

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

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

答案 2 :(得分:0)

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

我认为这会有效