将HTTPS限制为特定的应用程序路由

时间:2018-06-08 20:39:21

标签: ssl apache2

我有一个应用程序,它使用路由规则来定义用户和特定实体类型的操作。是否可以为Apache的SSL实现创建一组特定的规则,以允许站点上的特定路径使用HTTPS,其他路由规则使用HTTP?当前的路由规则是重新格式化的基本参数:

<Directory "/var/www/exampleapp/public/">
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</Directory>

所有应用程序行为都在端口80上的VirtualHost上提供。

1 个答案:

答案 0 :(得分:0)

可能有几种方法可以做到这一点,下面给出了一种方法。 假设您的所有请求都是通过https到达的,您可以执行以下操作:

RewriteEngine On

RewriteCond %{REQUEST_URI} ^/uri1 [NC]
RewriteCond %{REQUEST_URI} ^/uri2 [NC]
..
..
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R]

在这种情况下,您要在https上列出您需要的uri,并将剩余部分重定向到http
你可以随时切换它