我在 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/