apache - htaccess 将 https 流量重定向到特定文件夹?

标签 apache .htaccess ssl

我在 godaddy 上托管我的网站,最近购买了 SSL 证书,因此我也可以运行 https 流量。但是,我希望所有 https 流量都转到常规 http 无法访问的特定文件夹。此外,我不希望特定文件夹成为主 http 文档根目录的子文件夹。

GoDaddy cPanel 文件夹结构:

/home/myAccountFolder/
    /cache
    /logs
    /public_html
    /private_html
    ...

默认情况下,“www”.foo.com 的所有标准 http 流量都将转到/public_html - 但我如何才能获得 https://api.foo.com 的所有流量?映射到/private_html 文件夹?

有人告诉我 .htaccess 可以做到这一点,但似乎无法找到如何做到这一点。我知道我可以将 https 重定向到/home/myAccountFolder/public_html/secure,但我希望它转到/home/myAccountFolder/private_html - 一个完全不同的根文件夹。

此外,我无权访问服务器配置或(据我所知)无法在 GoDaddy 的 cPanel 环境中创建/管理虚拟主机。我所能做的就是控制目录以及进入我的网站 .htaccess 文件的内容。

最佳答案

在您的站点根目录 .htaccess 中,您可以使用此规则将 api.foo.com 重定向到 secure/ 文件夹:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^api\. [NC]
RewriteRule !^api/ api%{REQUEST_URI} [L,NC]

在您的 api/.htaccess 中,您可以使用此规则仅允许 http://api.foo.com:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^api\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule ^ -  [F]

# rest of the rules

关于apache - htaccess 将 https 流量重定向到特定文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40090222/

相关文章:

php - 浏览器显示这种错误

apache - 配置 htaccess 进行 url 重写

django - WebSocket 打开握手在 https 中超时

php - 下载页面而不是通过 SSL 呈现

java - Java 中的 SSL 身份验证作为服务器/客户端模型

java - 在servlet java中将字符串转换为Mysql时间戳

php - 警告 : mysqli_connect(): (HY000/1049): Unknown database in mac terminal only

node.js - 重写规则,以便正确加载具有绝对路径的 css 和 js 文件

wordpress - 子域上的 http 重定向到主域;子域适用于 https

.htaccess ModRewrite : Url was not found