我试图将一个旧域重定向到它的noew域,但是我需要设置一些规则,到目前为止我还没有设法让它完全正确。
旧域名,例如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放在新域结束,但是如果小镇之后的路径不是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重写教程了吗?
答案 0 :(得分:2)
提示:重写规则在第一个匹配的基础上处理。 您可以在主规则
之前添加例外答案 1 :(得分:0)
经过大约4-5个小时的尝试不同的组合和阅读上帝知道我设法到达那里有多少rewriterule教程。继承了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]