将旧站点/子文件夹重定向到新站点/子文件夹

时间:2015-08-28 01:41:38

标签: apache .htaccess redirect

我正在尝试编写一些重定向,并且偶然发现了重定向文件夹的最后一步。

我有一个具有以下结构的旧网站

example.com
example.com/example
example.com/example/example
example.com/example/example

(域名examples.com停放并重定向到此站点)

一个新网站(域名未停放),

examples.com
examples.com/examples/new
examples.com/examples/examples/updated
examples.com/examples/examples/sample

使用原始网站上的传统301按照以下方式简单地重定向到root

redirect 301 /example/ http:www.examples.com/examples/new/

它不会指向正确的子文件夹

作为短期,我使用以下内容将所有链接重定向到根目录(在旧服务器上),但将它们全部推送到确切位置是理想的

RedirectMatch 301 ^/example/.*$ http://www.examples.com/

我显然遗漏了一些简单的东西,所以任何建议都值得赞赏。

1 个答案:

答案 0 :(得分:0)

试试这个:

RedirectMatch 301 /example(.*) http://examples.com/examples/new/$1
RedirectMatch 301 /example/example(.*) http://examples.com/examples/examples/$1

示例#1:http://oldsite.com/example/XXXX应重定向到http://newsite.com/examples/new/XXXX

示例#2:http://oldsite.com/example/example/UPDATE应重定向到http://newsite.com/examples/examples/UPDATE

好的,如果上面的那些不起作用......那就是..

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} oldsite\.com [NC]
RewriteRule ^example/?$ http://newsite.com/examples/new [R=301,L]
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} oldsite\.com [NC]
RewriteRule ^example/example/([^/]+)/?$ http://newsite.com/examples/examples/$1 [R=301,L]
</IfModule>