Apache Rewrite: всегда использовать HTTPS (как добавить исключение) - PullRequest
2 голосов
/ 14 июля 2010

На mydomain.com все мои файлы apache conf хранятся в:

/etc/httpd/conf.d/

Там у меня есть файл AlwaysHttps.conf, который содержит:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

У меня есть куча виртуальных хостов, и для одного домена на сайте: myotherdomain.com я бы хотел отключить автоматическое перенаправление. Можно ли настроить исключение для перенаправления на https, вместо того, чтобы избавляться от глобального AlwaysHttps.conf?

<VirtualHost *:80> 
    DocumentRoot /home/webadmin/myotherdomain.com/html 
    ServerName myotherdomain.com 
    CustomLog "/home/webadmin/myotherdomain.com/access_log" "combined" 
    ErrorLog "/home/webadmin/myotherdomain.com/error_log" 
    <Directory /home/webadmin/myotherdomain.com/html> 
        Options Includes FollowSymLinks 
        AllowOverride All 
    </Directory> 
</VirtualHost> 

Ответы [ 2 ]

3 голосов
/ 14 июля 2010
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !myotherdomain\.com
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA]
0 голосов
/ 15 июля 2010

Fantastic!

В моем http.conf у меня есть:

NameVirtualHost  *:80
NameVirtualHost  *:443

Listen 8033

Причина прослушивания на 8033 была в том, что я использую функцию OpenVPN для двойного использования порта 80. Как только я изменил свой

<VirtualHost *:80>  to 
<VirtualHost *:8033> 

все работает.

Любопытно, почему все мои другие виртуальные домены и файлы * .conf работают, даже если они имеют

<VirtualHost *:80> 

, а не

<VirtualHost *:8033>. 

Есть идеи, почему это так?

...