-2

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

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

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

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

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

请给我这个代码:)

4

3 回答 3

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

我认为这会奏效

于 2013-09-15T13:57:20.713 回答
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]
于 2013-09-15T13:25:55.443 回答
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

于 2013-09-15T13:27:17.727 回答