htaccess 重写为 www,除了子域没有按预期工作
htaccess rewrite to www except subdomain not working as expected
我知道有人问过类似的问题,但同样的代码在两个站点上有效,在第三个站点上无效,所以我正在寻找有关更改内容的想法 and/or 要检查的内容找出为什么它在第三个站点上不起作用。
需要发生的事情: 将域上的所有请求重定向到 (1) 非 https 到 https,以及 (2) 所有非 www 到 www ... staging.___.com 子域除外,该子域不应添加 www 或 https。
#Rewrite http to https
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^staging\.(.+)$ [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
#Rewrite non-www to www
RewriteCond %{HTTP_HOST} !^www\.(.+)$ [NC]
RewriteCond %{HTTP_HOST} !^staging\.(.+)$ [NC]
RewriteRule ^(.*)$ http://www\.%{HTTP_HOST}/ [R=301,L]
这在两个 GoDaddy 共享托管站点 ("Deluxe Web Hosting Linux") 上运行良好,但在 "Deluxe Linux Hosting with cPanel" 上的第三个共享托管站点上运行不佳(如果有的话)。 (PHP 的版本不同,Apache 可能不同但不确定如何检查,因为 apache_get_version 不适用于 GoDaddy ...)
重定向的地方 没有 htaccess 中的两条 !^staging 行:
http://www.staging.___.com/newtest/
然后它进入无限重定向循环。 ("newtest" 是在 GoDaddy 控制面板中指定的子域文件夹)
重定向 WITH htaccess 中的 !^staging 行:
https://www.___.com
我是否漏掉了一些明显的东西?
这个答案可能不会帮助未来偶然发现此页面的人,但我认为我还是应该回答:
htaccess 文件中还有很多其他杂七杂八的东西;该网站已经存在多年,我最近 "inherited" 将其作为我工作职责的一部分。删除所有这些行后,登台重定向现在可以工作了。我仍然看不出究竟是什么会导致问题,但无论如何,它是有效的,希望我们不需要任何其他旧规则。 (据我所知,我们没有。)
我知道有人问过类似的问题,但同样的代码在两个站点上有效,在第三个站点上无效,所以我正在寻找有关更改内容的想法 and/or 要检查的内容找出为什么它在第三个站点上不起作用。
需要发生的事情: 将域上的所有请求重定向到 (1) 非 https 到 https,以及 (2) 所有非 www 到 www ... staging.___.com 子域除外,该子域不应添加 www 或 https。
#Rewrite http to https
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^staging\.(.+)$ [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
#Rewrite non-www to www
RewriteCond %{HTTP_HOST} !^www\.(.+)$ [NC]
RewriteCond %{HTTP_HOST} !^staging\.(.+)$ [NC]
RewriteRule ^(.*)$ http://www\.%{HTTP_HOST}/ [R=301,L]
这在两个 GoDaddy 共享托管站点 ("Deluxe Web Hosting Linux") 上运行良好,但在 "Deluxe Linux Hosting with cPanel" 上的第三个共享托管站点上运行不佳(如果有的话)。 (PHP 的版本不同,Apache 可能不同但不确定如何检查,因为 apache_get_version 不适用于 GoDaddy ...)
重定向的地方 没有 htaccess 中的两条 !^staging 行:
http://www.staging.___.com/newtest/
然后它进入无限重定向循环。 ("newtest" 是在 GoDaddy 控制面板中指定的子域文件夹)
重定向 WITH htaccess 中的 !^staging 行:
https://www.___.com
我是否漏掉了一些明显的东西?
这个答案可能不会帮助未来偶然发现此页面的人,但我认为我还是应该回答:
htaccess 文件中还有很多其他杂七杂八的东西;该网站已经存在多年,我最近 "inherited" 将其作为我工作职责的一部分。删除所有这些行后,登台重定向现在可以工作了。我仍然看不出究竟是什么会导致问题,但无论如何,它是有效的,希望我们不需要任何其他旧规则。 (据我所知,我们没有。)