使用mod_rewrite将.htaccess中的特定子域重定向到https
问题描述:
我试图在我的服务器上从测试环境开始测试SSL。规则似乎在我的本地工作,但是当我承诺我的测试服务器时,我得到“太多重定向”错误。使用mod_rewrite将.htaccess中的特定子域重定向到https
下面是有关重写条件/规则,我有:
# Send non-www to www
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Send test.mysite.com to https
RewriteCond %{HTTPS} off
#RewriteCond %{HTTP_HOST} ^(.+)\.test\.mysite\.com$ [NC]
RewriteCond %{HTTP_HOST} ^www\.test\.mysite\.com$ [NC]
RewriteRule^https://www.test.mysite.com%{REQUEST_URI} [L,R=301]
的目标是发送www.test.mysite.com和test.mysite.com既https://www.test.mysite.com
答
我已经取消注释行:
RewriteCond %{HTTP_HOST} ^(.+)\.test\.mysite\.com$ [NC]
而且它似乎现在在私人浏览器正在工作。这是否使www行不必要?
RewriteCond %{HTTP_HOST} ^www\.test\.mysite\.com$ [NC]
这些规则对我来说看起来不错......也许有些其他规则在这里干扰?真正的服务器配置或其他动态配置文件中的规则(意外)将_back_重定向到http? – arkascha
如果您找不到任何东西,那么我建议您启用重写日志记录(请参阅重写模块的官方文档)。它允许您检查重写引擎中实际进行的每个步骤。 – arkascha