访问。将排除的子文件夹重定向到域的 https 版本,其他所有内容都被重定向到另一个域
Posted
技术标签:
【中文标题】访问。将排除的子文件夹重定向到域的 https 版本,其他所有内容都被重定向到另一个域【英文标题】:Htaccess. Redirect excluded subfolder, to https version of domain and everything else gets redirected to another domain 【发布时间】:2019-07-15 12:13:06 【问题描述】:我有一个多域网站,
这意味着根据域显示内容的版本,
所以现在我有域 chiname.com
和 greatwall.com
当用户登陆chiname.com
时,会被重定向到https://www.greatwall.com
,除了两个文件夹/landing
和/marketing
保留在chiname.com
上,但希望它位于https
版本的chiname.com
上。
我尝试添加 rewriteRule,但对我不起作用
RewriteEngine On
RewriteCond %HTTP_HOST ^chiname.com$ [NC]
RewriteCond %REQUEST_URI !^/(landing|marketing)
RewriteRule ^(landing/.*)$ https://www.chiname.com/$1 [R=301,L]
RewriteRule ^(marketing/.*)$ https://www.chiname.com/$1 [R=301,L]
RewriteRule ^(.*)$ https://www.greatwall.com/$1 [R=301,L]
【问题讨论】:
【参考方案1】:您可以使用以下 2 条重定向规则:
RewriteEngine On
RewriteCond %HTTPS !on
RewriteCond %HTTP_HOST ^(?:www\.)?chiname\.com$ [NC]
RewriteRule ^(landing|marketing) https://%HTTP_HOST%REQUEST_URI [R=301,L,NC,NE]
RewriteCond %HTTP_HOST ^(?:www\.)?chiname\.com$ [NC]
RewriteCond %REQUEST_URI !^/(landing|marketing) [NC]
RewriteRule ^ https://www.greatwall.com%REQUEST_URI [R=301,L,NC,NE]
确保使用新的浏览器进行测试。
【讨论】:
在 Chrome 开发工具中使用 缓存禁用 进行测试,并在“网络”选项卡中检查您获得的 301/302 重定向 URL 是什么。 在禁用缓存的隐身模式下在 chrome 中进行测试,我得到所有 301 错误,我得到的所有 URL 都是https://chiname.com/landing/*
,最后它失败了。你想要我的完整 htaccess 文件吗??
是的,我建议使用完整的 .htaccess 编辑您的问题,并告诉我您的托管信息,例如Apache 版本、DocumentRoot、是否存在任何代理服务器等以上是关于访问。将排除的子文件夹重定向到域的 https 版本,其他所有内容都被重定向到另一个域的主要内容,如果未能解决你的问题,请参考以下文章