2017-01-22 55 views
1

試圖將所有http和none-www的流量重定向到https(帶或不帶www)。 使用.htaccessapache VirtualHost文件:apache重定向http到https而沒有www

虛擬主機文件

<VirtualHost *:80> 
    ServerName adi-md.co.il 
    ServerAlias www.adi-md.co.il 

的.htaccess

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{HTTPS} =on 
RewriteCond %{HTTP_HOST} ^www\. [NC,OR] 
RewriteCond %{HTTP_HOST} ^adi-md.co.il 
#RewriteRule^https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L,NE] 
#RewriteCond %{HTTP_HOST} ^(?:www\.)?(.*)$ [NC] 
#RewriteRule (.*) https://www.%1%{REQUEST_URI} [L,R=301] 
#RewriteCond %{HTTP_HOST} ^www.adi-md.co.il 

選項1

RewriteCond %{HTTPS} =on 
RewriteCond %{HTTP_HOST} ^adi-md.co.il 

選項2

RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.*)$ [NC] 
RewriteRule (.*) https://www.%1%{REQUEST_URI} [L,R=301] 

打字的時候只是adi-md.co.il你的服務器的默認頁面。

我該如何解決這個問題,這樣所有的流量都被重定向到https以及none-www請求?

注: 我已經看過這3個,但他們沒有提供答案(2出3處理WWW到無www的)

apache redirect http to https and www to non www
http to https apache redirection
Redirect from http to https without www using .htaccess

+0

結帳http://redirect-www.org/ –

回答

0

試試這個:

RewriteCond %{HTTP_HOST} ^www\. [NC,OR] 
RewriteCond %{HTTPS} =on 
RewriteRule^http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L,NE] 

這基本上會首先檢查您是否已啓用www並開啓HTTPs。如果其中任何一個都會將其切換回HTTP並刪除www

確保在測試之前清除緩存。對於HTTP重定向到https

+0

不知何故這並沒有做的工作......我更新了我的問題的'。 htaccess'文件 – Jadeye

1

兩個簡單的規則加www:

RewriteCond %{HTTP_HOST} ^www\.(.+) [NC] 
RewriteRule^https://%1%{REQUEST_URI} [L,R=301] 

RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
+0

是否可以使用這些規則。但在使用.local域名主機時忽略它們? – Floris

相關問題