2011-03-23 63 views
0

我有我的网站上的某些页面使用HTTP和HTTPS使用其他页面。现在我想使用mod_rewrite将www附加到所有URL,无论它们是使用http还是https。附加WWW在URL HTTP和HTTPS

我有我当前的代码在.htaccess:

RewriteCond %{HTTP_HOST} ^domain.com$ [NC] 
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !index.php 
RewriteCond $1 !^(index\.php|public|assets|robots\.txt) 
RewriteRule ^(.*)$ ./index.php/$1 [L] 

请只专注于前两行的其余为其他重写规则,但我把它的情况下,他们造成了我的第一个任何错误2行。

现在这会将所有的页面的HTTP,但我想用HTTPS页面重定向到正确的协议。我试图解决在计算器上(htaccess redirect for non-www both http and https)线程,但它并没有为我工作。

回答

0

您链接答案应该很好地工作。如果它不工作,HTTPS变量可能没有设置。这通常是因为你没有在你的Apache服务器上执行HTTPS。也许你有一个代理来做它,或者是一个负载平衡器?在这种情况下,你需要确保HTTPS变量被设置。这样的事情经常做的伎俩(该示例适用于亚马逊弹性负载均衡器):

SetEnvIf X-Forwarded-Proto https HTTPS=1 
+0

嗯,我真的不知道你的意思,但我可以在现场使用https,这只是mod_rewrite的没有按出于某种原因,不能正确重定向。 – peter 2011-03-23 02:19:36

+0

通过了mod_ssl或别的东西被服务的HTTPS? – easel 2011-03-23 02:55:29

相关问题