所以我只是将我的网站从/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。