我正在努力将整个站点迁移到新服务器,并且需要设置 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]