0

我试图将一个旧域重定向到它的新域,但是我需要制定一些规则,到目前为止我还没有设法让它完全正确。

旧域,例如 www.old-domain.com 在英国城镇之后有数百个文件夹名称,如下所示:

www.old-domain.com/sheffield/ www.old-domain.com/london/ www.old-domain.com/essex/

这些文件夹中的每一个都包含一个 index.html 文件和可能的其他目录和文件。

我需要以这样的方式将它们重定向到新域,以便旧域/城镇映射到新域/城镇但旧域/城镇/index.html 不会将 index.html 放在新域端但是如果路径之后town 是 index.html 以外的任何东西,可以在新域上重定向到它。
抱歉,这不是最容易解释的,也不是最容易阅读和理解的,我敢肯定。

www.old-domain.com/sheffield => www.new-domain.com/sheffield

www.old-domain.com/sheffield/ => www.new-domain.com/sheffield/

www.old-domain.com/sheffield/index.html => www.new-domain.com/sheffield/

www.old-domain.com/sheffield/main.html => www.new-domain.com/sheffield/main.html

www.old-domain.com/sheffield/innerFolder/ => www.new-domain.com/sheffield/innerFolder

www.old-domain.com/sheffield/innerFolder/file.php => www.new-domain.com/sheffield/innerFolder/file.php

上面粗体的两个我设法通过这个来工作:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^sheffield/(.*)$ http://www.new-domain.com/sheffield/$1 [R=301,L]

但是,我真的很难让 old-domain.com/sheffield/index.html 不把 .index.html 放在新域上。

在我把头发拉出来盯着 mod rewrite 教程再看几个小时之前,任何人都可以对此有所了解吗?

4

2 回答 2

2

提示:重写规则在第一个匹配的基础上处理。您可以将例外放在主要规则之前

于 2012-07-26T16:44:00.107 回答
0

经过大约 4-5 小时的尝试不同的组合和阅读上帝知道我设法到达那里的重写教程。这是仅 3 个位置的 htacess 文件,现在它们都工作得很好。

Options +FollowSymLinks
RewriteEngine on

RewriteRule ^sheffield\/index\.html http://www.new-domain.co.uk/sheffield/ [R=301,L]
RewriteRule ^sheffield/(.*)$ http://www.new-domain.co.uk/sheffield/$1 [R=301,L]

RewriteRule ^bolton\/index\.html http://www.new-domain.co.uk/bolton/ [R=301,L]
RewriteRule ^bolton/(.*)$ http://www.new-domain.co.uk/bolton/$1 [R=301,L]

RewriteRule ^coventry\/index\.html http://www.new-domain.co.uk/coventry/ [R=301,L]
RewriteRule ^coventry/(.*)$ http://www.new-domain.co.uk/coventry/$1 [R=301,L]
于 2012-07-27T09:40:51.853 回答