我们正在为作为服务器上唯一域运行的应用获取新域名。
因此,对于这个问题,我们假设我们正在将 olddomain.co.uk 移至 newdomain.com 。这两个域都会在最初的几个月里保持不变,虽然我没有自己设置它,但我很确定它们都被记录为针对同一IP地址的2个独立记录。几个星期后,我想将所有对新域名的请求重新写入旧域名,然后我会将其交换几个月。
所以我可以这样做(在httpd.conf的底部)
<If "%{HTTP_HOST} == 'newdomain.com'">
RewriteEngine On
RewriteRule ^.*$ https://www.google.co.uk [L]
</If>
这完全有效,除非它不是要求。 olddomain.co.uk转到应用程序,newdomain.com被重定向到谷歌。
所以我的下一步是放入我想要使用的规则
<If "%{HTTP_HOST} == 'newdomain.com'">
RewriteEngine On
RewriteRule "^/?(.*)" "http://oldmain.co.uk%{REQUEST_URI}"
</If>
这会返回一个通用错误(道歉我忘记记录了什么错误,需要等待一段时间才能重现它 - 它是一个实时服务器 - 如果需要,我稍后会添加编辑)。
我有一个UAT环境,但遗憾的是它没有注册域名,而是使用IP地址访问。我已经设置了组织级别的dns映射,并对此进行了一些测试。直到它在现场失败,我以为我有这个怀疑。
所以在UAT我有类似的东西
<If "%{HTTP_HOST} == 'uatserver'">
RewriteEngine On
RewriteRule "^/?(.*)" "http://[ipaddress]%{REQUEST_URI}"
</If>
这很有用。
如果我改变实时服务器以重定向到uat服务器,这可以工作......
<If "%{HTTP_HOST} == 'newdomain.com'">
RewriteEngine On
RewriteRule "^/?(.*)" "http://[uat-ip-address]%{REQUEST_URI}"
</If>
所以语法似乎没有问题。
似乎在实时服务器上的问题是它重定向到同一个框(?)
我在UAT和UAT之间看到的唯一真正的区别实时服务器位于httpd-vhosts.conf文件中。这是现场直播
NameVirtualHost olddomain.co.uk
NameVirtualHost newdomain.com
NameVirtualHost [ip address]
<VirtualHost [ip address] olddomain.co.uk newdomain.com localhost:80>
serveralias [ip address]
serveralias olddomain.co.uk
serveralias newdomain.com
serveralias localhost
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">
Options +FollowSymLinks
AllowOverride none
</Directory>
#JkOptions +ForwardURICompatUnparsed
ProxyRequests off
JkMount /* ajp13
</VirtualHost>
任何人都可以提供任何指示吗?我已经浏览了几个类似的问题,但没有找到任何结论,下次我有机会把服务器关闭,我希望有一些明确的尝试而不是黑客攻击!?
答案 0 :(得分:1)
如果你想要 olddomain.com - &gt; newdomain.com
将这些设置保留在apache.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerName olddomain.com
ServerAlias newdomain.com
RewriteEngine on
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*) http://www.newdomain.com%{REQUEST_URI} [R=302,NC]
如果您想要 newdomain.com - &gt; olddomain.com 强>
将这些设置保留在apache.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerName newdomain.com
ServerAlias olddomain.com
RewriteEngine on
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*) http://www.olddomain.com%{REQUEST_URI} [R=302,NC]
同样在您的DNS设置中,A Record
足以支持您的新域名。您所要做的就是将它指向您的服务器。
确保在执行这些更改之前备份当前配置。既然你还活着,我就无法为你测试,但它应该有用。