2016-04-18 59 views
0

說,我有一個域名爲http://www.example.com。我有這個httpd.confDocumentRoot "/Apache22/htdocs"Apache22:如何將目錄重定向到https?

我也有/Apache22/htdocs/dir1應用程序目錄,我想強迫用戶與https,比如連接,與網址:https://www.example.com/dir1和重定向任何http請求https此目錄。

我試圖虛擬主機重定向這樣:

NameVirtualHost *:80 
<VirtualHost *:80> 
ServerName www.example.com 
DocumentRoot /Apache22/htdocs/ 
</VirtualHost> 

<VirtualHost *:80> 
ServerName www.example.com/dir1 
DocumentRoot /Apache22/htdocs/dir1 
Redirect permanent /dir1 https://www.example.com/dir1 
</VirtualHost> 

NameVirtualHost *:443 
<VirtualHost *:443> 
ServerName www.example.com/dir1 
DocumentRoot /Apache22/htdocs/dir1 
SSLEngine on 
SSLCertificateFile conf/ssl/server.cert 
SSLCertificateKeyFile conf/ssl/server.key 
</VirtualHost> 

但顯然阿帕奇忽略服務器名任何subdrectories,這樣既www.example.comwww.example.com/ dir1VirtualHost塊中是一樣的,就Apache而言。

如何實現https重定向任何URL訪問dir1

回答

0

嘗試:

NameVirtualHost *:80 

<VirtualHost *:80> 
ServerName www.example.com 
DocumentRoot /Apache22/htdocs/ 

Redirect permanent /dir1 https://www.example.com/dir1 
</VirtualHost> 

NameVirtualHost *:443 

<VirtualHost *:443> 
ServerName www.example.com 

DocumentRoot /Apache22/htdocs 

SSLEngine on 
SSLCertificateFile conf/ssl/server.cert 
SSLCertificateKeyFile conf/ssl/server.key 
</VirtualHost> 

ServerName指令需要一個主機名,沒有任何東西,包括一個路徑組件。

相關問題