给出一些可能有助于理解这一点的背景知识。我最初只在我的主机服务器上有一个域。我刚刚添加了一个新域名,它正在重定向到我的第一个站点。
我必须创建一个.htaccess文件重定向我的第一个网站,以便它在每个页面上都有我的SSL,所以它需要www。远离网站名称。 www。在客户登录时导致会话出现问题。
所以我的代码是这样的:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteRule ^(.*) https://%1/$1 [R=301,NE,L]
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
我的主机公司的技术支持说,这条线路正在使我的新网站重定向到我的旧网站:
RewriteRule ^(.*) https://%1/$1 [R=301,NE,L]
如何使我的代码工作,以便仍然具有与其正在执行的功能完全相同的功能,并且不会干扰我的新域并使其重新路由到我的旧网站?
答案 0 :(得分:2)
如果我理解正确,为什么不排除新网站?
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.)?newsite\.com [NC]
RewriteCond %{HTTP_HOST} ^www\.oldsite\.com [NC]
RewriteRule ^(.*)$ https://oldsite.com/$1 [R=301,NE,L]
RewriteCond %{HTTPS} ^off
RewriteCond %{HTTP_HOST} !^(www\.)?newsite\.com [NC]
RewriteRule ^(.*) https://oldsite.com/$1 [R=301,NE,L]
或许你可以告诉它不要根据主机做任何事情。尝试将此放在规则的顶部。
RewriteCond %{HTTP_HOST} ^(www\.)?newsite\.com [NC]
RewriteRule ^ - [L]
注意我没有测试过这个。