【问题标题】:htaccess redirect https traffic to a specific folder?htaccess 将 https 流量重定向到特定文件夹?
【发布时间】:2016-10-17 15:25:03
【问题描述】:

我在 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 文件的内容。

【问题讨论】:

  • 无法访问服务器配置,您无法使用DocumentRoot之外的任何路径
  • @anubhava 无赖。我以为这就是答案。猜猜我必须做 /home/myAccountFolder/public_html/secure - 但我怎样才能防止任何 http 流量进入安全文件夹?更具体地说,我只希望发往 api.foo.com 的流量能够访问 /public_html/secure 文件夹。如果它没有进入该主机/域请求,则无法访问该文件夹。

标签: apache .htaccess ssl


【解决方案1】:

在您的站点根目录 .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

【讨论】:

  • 感谢您。我正在测试各种 url,到目前为止,它看起来像重定向工作。但是,目前,foo.com 正在重定向到 api.foo.com 并且 foo.com/api 正在重定向到 api.foo.com/api - 是否可以阻止这些入站请求重定向?我只希望api.foo.com 的请求能够访问 /api 文件夹
  • 当请求以http://foo.com/api 来时会发生什么?它应该导致重定向到http://api.foo.com/ 还是应该导致 403?
  • 我希望它导致 403。我想要访问 api 文件夹的唯一内容是用于 api.foo.com 的流量,'api' 文件夹。我想更好地澄清只有 www 是用于 http,而 api 是用于 https。因此foo.com 将是 403 以及 api.foo.com。试图防止异花授粉。 :-)
猜你喜欢
  • 2011-06-13
  • 1970-01-01
  • 1970-01-01
  • 2014-08-23
  • 2017-08-13
  • 1970-01-01
  • 2019-09-15
  • 1970-01-01
  • 2014-03-16
相关资源
最近更新 更多