2017-01-19 139 views
1

我期待获得以下2页来重定向WWW。各自主机的版本;重定向非www到WWW的http和https

http://website.co.uk > redirect to > http://www.website.co.uk 

https://website.co.uk > redirect to > https://www.website.co.uk 

我需要保持HTTP和对各个URL进行工作HTTPS。

回答

1

您可以使用此单一规则在两个httphttps添加www

# for Apache 2.4+ use this rule 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule^%{REQUEST_SCHEME}://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

如果”重新使用旧的Apache版本,然后使用以下规则:

# for Apache 2.2 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTPS}s on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE] 
+0

导航到内部页面时,它会将每个页面重定向到/index.php。例如,当你访问http://website.com/en/for-suppliers/supplier-solutions时,你会被重定向到http://www.website.com/index.php而不是http://www.website。 com/en/for-suppliers/supplier-solutions,因为它应该是? –

+0

如果您将此重定向作为第一条规则放置在“RewriteEngine On”行的下方并清除浏览器缓存,则不会发生此问题。 – anubhava

0

您是否尝试使用RewriteEngine规则? 下面应该做的伎俩(应用它的两个虚拟主机80和443):

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule ^(.*)$ https://www.website.co.uk$1 [R=301,L] 
#for 80 port: RewriteRule ^(.*)$ http://www.website.co.uk$1 [R=301,L] 
相关问题