apache - 禁止 https 访问整个网站,但只为一个 url 启用它

标签 apache mod-rewrite ssl https

我有一个 Apache 配置为有一个完整的网站使用 ssl 和没有 ssl (只有 http),但我想只需在 https://www.mydomain.com/controller/action/params 处使用 ssl,其中 controller 不是目录。换句话说,https://www.mydomain.com/https://www.mydomain.com/* 不应可访问。

有人知道怎么做吗?

附言现在我正在尝试在 .htaccess 文件中使用以下代码,但仍然没有成功。

RewriteCond %{SERVER_PORT} 443
RewriteCond %{REQUEST_URI} !controller/action/*
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]

最佳答案

request_uri 以“/”开头。您也可以只使用“*”,在这种情况下星号表示 0 个或多个“/”字符。它应该看起来更像:

RewriteCond %{SERVER_PORT} 443
RewriteCond %{REQUEST_URI} !/controller/action/.*
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]

关于apache - 禁止 https 访问整个网站,但只为一个 url 启用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7111141/

相关文章:

Apache Rewrite - 重定向通配符子域和处理内部 URL 缩短器

java - 通过 https 发送 http 表单 post 属性

apache - SSL 卸载程序和 Apache 背后的 Glassfish HTTPS 重定向

MySQL SSL 复制错误 - Error_code : 2026

python - 在 Django 和 Apache 中使用 WSGI 时如何修复 "Timeout when reading response headers from daemon process"错误

python - 通过 Python 脚本启动/停止 Apache

未强制执行 php7 超时

regex - 不要在 htaccess 中重定向子域

apache - 将 .php 重定向到无扩展名并创建没有 .php 的 url

apache - 使用 .htaccess 将地址从 xxx.example.com 重写为 example.com/xxx/