如何使用 htaccess 重定向到除网站索引之外的新域



我正在努力将整个站点迁移到新服务器,并且需要设置 htaccess,以便它在处理新内容的同时正确重定向旧内容。

旧域是一个简单的登录页面,由索引.html页面和三个目录组成:/images,/styles,/fonts。

每当有人导航到旧域时,我都希望加载登录页面。也就是说,如果用户导航到:

  • http://OldDomain.com
  • http://OldDomain.com/
  • http://OldDomain.com/index.html

然后它们保留在所述 URL 上。

任何其他情况下,我想执行 301 重定向。例如:

  • http://OldDomain.com/about 重定向到 http://NewDomain.com/about
  • http://OldDomain.com/this-is-the-title 重定向到 http://NewDomain.com/this-is-the-title

不幸的是,我似乎无法确定正确的正则表达式来处理着陆页的初始情况。

试试这段代码:

Options +FollowSymlinks -MultiViews
RewriteEngine on
# for http    
RewriteCond %{HTTP_HOST} ^(www.)?olddomain.com$ [NC] 
RewriteCond %{SERVER_PORT} =80
RewriteRule . http://NewDomain.com%{REQUEST_URI} [R=301,L]
# for https
RewriteCond %{HTTP_HOST} ^(www.)?olddomain.com$ [NC] 
RewriteCond %{SERVER_PORT} =443
RewriteRule . https://NewDomain.com%{REQUEST_URI} [R=301,L]

最新更新