2014-10-31 68 views
0

我想強制用戶使用https://訪問我的網站,以便我使用以下php代碼和.htaccess文件。強制用戶訪問使用https://的網站

PHP代碼:

if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') { 
    if(!headers_sent()) { 
     header("Status: 301 Moved Permanently"); 
     header(sprintf(
      'Location: https://%s%s', 
      $_SERVER['HTTP_HOST'], 
      $_SERVER['REQUEST_URI'] 
     )); 
     exit(); 
    } 
} 

.htaccess文件

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

例如我的網站URL名稱是:www.example.com。如果將URL從https://更改爲http://,那麼它將成功重定向到https:// ,但如果我將url更改爲http://www.example.com,則將返回。那麼它不會去https://。它接受http://。

注:我已經支付HTTPS版本://

我希望該用戶不能訪問我的網站,而HTTPS://了。我怎樣才能做到這一點 ?

+0

請到這裏,這個問題已經回答過。 http://security.stackexchange.com/questions/23646/should-we-force-user-to-https-on-website – 2014-10-31 16:26:42

回答

1

如果您正在運行Apache,最簡單的方法是使用.htaccess將http訪問自動重定向到https。以下是一個示例:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 

將上面的代碼保存到根文件夾中現有的.htaccess文件中。如果您沒有.htaccess文件,則可以將上述內容另存爲純文本文件,並將其保存爲名稱.htaccess。請注意領先的'。'在文件名中。這很重要。將該文件上傳到您的根目錄。

+1

好的。我正在做。 – creativeartbd 2014-10-31 16:48:48