2013-04-16 2 views
0

У меня есть сайт с областями, для которых требуется принудительный режим SSL, а затем для принудительного отключения SSL.Правила перезаписи нескольких условий

Я начал со следующими правилами:

<VirtualHost *:80> 
    RewriteEngine On 
    RewriteCond %{HTTPS} !=on 
    RewriteRule ^/tourism/bookings/(.*) https://%{SERVER_NAME}/tourism/bookings/$1 [R,L] 
    RewriteRule ^/?bookings/(.*) https://%{SERVER_NAME}/bookings/$1 [R,L] 
</VirtualHost> 

<VirtualHost *:443> 
    RewriteEngine On 
    RewriteCond %{REQUEST_URI} !^/bookings 
    RewriteCond %{REQUEST_URI} !^/tourism/bookings 
    RewriteRule (.*) http://%{SERVER_NAME}$1 [L,R,QSA] 
</VirtualHost> 

Теперь вышеуказанные работы - но режим SSL явно интерпретирует/включает/*, чтобы заставить его не-SSL ... есть корректировка выше, чтобы я мог заставить ВСЕ контент, кроме двух выше (но любые зависимости, такие как JS/CSS, включают в себя текущий протокол)?

Заранее спасибо

ответ

0

Если вы хотите, чтобы исключить другие вещи, кроме /bookings и /tourism/bookings тогда просто исключить их в условиях.

Кроме того, вам не нужно условие RewriteCond %{HTTPS} !=on, так что виртуальный хост всегда будет без HTTPS:

<VirtualHost *:80> 
    RewriteEngine On 
    RewriteCond %{REQUEST_URI} !\.(css|js)$ [NC] 
    RewriteRule ^/tourism/bookings/(.*) https://%{SERVER_NAME}/tourism/bookings/$1 [R,L] 
    RewriteCond %{REQUEST_URI} !\.(css|js)$ [NC] 
    RewriteRule ^/?bookings/(.*) https://%{SERVER_NAME}/bookings/$1 [R,L] 
</VirtualHost> 

<VirtualHost *:443> 
    RewriteEngine On 
    RewriteCond %{REQUEST_URI} !^/bookings 
    RewriteCond %{REQUEST_URI} !^/tourism/bookings 
    RewriteCond %{REQUEST_URI} !\.(css|js)$ [NC] 
    RewriteRule (.*) http://%{SERVER_NAME}$1 [L,R,QSA] 
</VirtualHost> 
+0

Благодаря миллиона, Предлагаемое исключение работало на 100%. –

Смежные вопросы