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/

相关文章:

regex - .htaccess 从大写重定向到小写,除了 URL 的最后一部分

apache - Ubuntu 14.04 Virtualmin 虚拟服务器上的 SSL 显示未知协议(protocol)

apache - 如何为 JSP 和 SEO 友好的干净 URL 设置 Apache 和 Tomcat

php - 使用 htaccess 强制重写 url 以提供 css 的绝对路径

linux - apache2源安装在哪里

regex - 重写所有 URL

Git LFS 和 HTTP 客户端身份验证

php - CURL 请求使 SSL 崩溃

c# - 无法启动带有 mod_mono 的 apache2。错误 : undefined symbol: unixd_config

php - 如何在没有 apache_get_modules() 的情况下检测 mod_rewrite?