Apache 多条件重写规则

Apache 多条件重写规则,apache,mod-rewrite,ssl,Apache,Mod Rewrite,Ssl,我有一个需要强制SSL模式,然后强制非SSL的其余地区的网站 我从以下规则开始: <VirtualHost *:80> RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/tourism/bookings/(.*) https://%{SERVER_NAME}/tourism/bookings/$1 [R,L] RewriteRule ^/?bookings/(.*) https://%{SERVER_NA

我有一个需要强制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>

重新启动发动机
重写cond%{HTTPS}=在…上
重写规则^/tourism/bookings/(*)https://%{SERVER_NAME}/tourism/bookings/$1[R,L]
重写规则^/?bookings/(*)https://%{SERVER_NAME}/bookings/$1[R,L]
重新启动发动机
重写cond%{REQUEST_URI}^/预订
重写cond%{REQUEST_URI}^/旅游/预订
重写规则(*)http://%{SERVER_NAME}$1[L,R,QSA]
现在,上面的工作-但SSL模式显然解释/includes/*以强制它使用非SSL。。。是否对上述内容进行了调整,以允许我强制执行除上述两个内容之外的所有内容(但任何依赖项,如JS/CSS,都必须遵循当前协议)


提前感谢

如果您想排除
/bookings
/tourism/bookings
之外的其他内容,只需在条件中排除即可

另外,您不需要
RewriteCond%{HTTPS}=在
条件下,因为该虚拟主机始终是非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>

重新启动发动机
重写条件%{REQUEST\u URI}!\。(css|js)$[NC]
重写规则^/tourism/bookings/(*)https://%{SERVER_NAME}/tourism/bookings/$1[R,L]
重写条件%{REQUEST\u URI}!\。(css|js)$[NC]
重写规则^/?bookings/(*)https://%{SERVER_NAME}/bookings/$1[R,L]
重新启动发动机
重写cond%{REQUEST_URI}^/预订
重写cond%{REQUEST_URI}^/旅游/预订
重写条件%{REQUEST\u URI}!\。(css|js)$[NC]
重写规则(*)http://%{SERVER_NAME}$1[L,R,QSA]