Apache 重定向子域到文件夹由于www规则无限重定向

Apache 重定向子域到文件夹由于www规则无限重定向,apache,.htaccess,redirect,mod-rewrite,Apache,.htaccess,Redirect,Mod Rewrite,我正在尝试向现有网站添加一个子域。我们添加了相应的“A”记录。我们希望staging.example.com显示example.com/test/中的内容(并保持staging.example.com) .htaccess文件(由其他人编写)将所有非https重定向到https,将所有非www重定向到www: RewriteEngine On RewriteBase / #Rewrite http to https RewriteCond %{HTTPS} off RewriteRule (.

我正在尝试向现有网站添加一个子域。我们添加了相应的“A”记录。我们希望
staging.example.com
显示
example.com/test/
中的内容(并保持
staging.example.com

.htaccess
文件(由其他人编写)将所有非https重定向到https,将所有非www重定向到www:

RewriteEngine On
RewriteBase /

#Rewrite http to https
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]

#Rewrite non-www to www
RewriteCond %{HTTP_HOST} !^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://www\.%{HTTP_HOST}/$1 [R=301,L]
我试图在上一个
重写规则
之前添加一行,如下所示:

RewriteCond %{HTTP_HOST} !^staging\.(.+)$ [NC]
然而,它总是在一个重定向循环中到达
www.staging.example.com


非常感谢您的建议。

这是因为您正在使用WWW重定向返回HTTP。将其更改为https:

编辑

我也会颠倒你的立场。。这正是我所使用的--我可以验证它是否适用于我:

RewriteEngine On
# to www
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# to https
RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

您好,谢谢您的回复,我尝试了您的建议,但仍然得到错误。有可能它正在被缓存吗?我一直在使用Chrome隐姓埋名,我清除了缓存,刷新了DNS?
staging.example.com
是否已经显示了
example.com/test/
中的内容?只是规范重定向是个问题?