htaccess如何重定向所有页面,但不重定向根目录

时间:2012-08-17 02:29:50

标签: .htaccess redirect

我需要一个帮助女巫htaccess 301重定向。

我有一个网站www.site.com但我需要将所有页面更改为www.newsite.com但我不想移动www.site.com(页面信息)

实施例

www.site.com (not move) index of to put then a template or message

www.site.com/2012/08/page.html move to www.newsite.com/2012/08/page.html
www.site.com/tag/keyword/ move to www.newsite.com/tag/keyword/
www.site.com/category/general/ move to www.newite.com/category/general/

我怎么能这样做?感谢

2 个答案:

答案 0 :(得分:3)

您可以尝试使用mod_alias'RedirectMatch强制重定向的URI中的某些内容。在site.com的文档根目录中的htaccess文件中,添加:

RedirectMatch 301 ^/(.+)$ http://www.newsite.com/$1

这将使http://www.site.com/被重定向后的任何内容都变得如此,但只有http://www.site.com/才会被重定向。但是,http://www.site.com/index.html 重定向。如果这是一个问题,你可以使用mod_rewrite:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/$
RewriteCond %{REQUEST_URI} !^/index.html$
# and whatever else you don't want redirected
RewriteRule ^(.*)$ http://www.newsite.com/$1 [L,R=301]

答案 1 :(得分:2)

www.site.com主机上通过httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在.htaccess目录下的DOCUMENT_ROOT中:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www\.)?site\.com$ [NC]
RewriteRule ^.+$ http://www.newsite.com%{REQUEST_URI} [L,R=301]