根据 URL 有条件地 https 重定向到 http?(Apache)

根据 URL 有条件地 https 重定向到 http?(Apache)

现在如果有人这样做,我 100% 会重定向https://mysite.com

<VirtualHost *:443>
   ServerAdmin [email protected]
   ServerName mysite.com
   ServerAlias www.mysite.com

   RewriteEngine on
   RewriteRule (.*) http://%{HTTP_HOST} [L,R=permanent]
<VirtualHost>

但是,现在我想有条件地重定向。如果用户转到https://mysite.com/abc/,那么我想使用 https;否则重定向。

我该怎么做?我尝试阅读文档,但就是找不到我需要的内容。

我在 Ubuntu Linux 上使用 Apache。

答案1

尝试添加重写条件(重写条件)之前重写规则我会尝试写类似这样的内容:

RewriteCond %{REQUEST_URI} !^.*(abc).*$ [NC]

如果这没有帮助的话,这里还有一些额外的阅读材料:
-http://www.whoopis.com/howtos/apache-rewrite.html
-http://www.sitepoint.com/article/apache-mod_rewrite-examples/

答案2

我将重现我在 Slicehost 论坛上给您的答案:

RewriteRule !^/abc/ http://%{HTTP_HOST} [L,R=permanent]

(已编辑)

答案3

这里有 apache 的示例: https://httpd.apache.org/docs/trunk/rewrite/remapping.html#canonicalhost

您也可以使用以下指令来实现此目的:(2.4 及更高版本)

重定向“/”http://www.example.com/“或者,例如,要将您网站的一部分重定向到 HTTPS,您可以执行以下操作:

重定向“/admin/”https://www.example.com/admin/

相关内容