【问题标题】:conditional statement for redirecting IPs using .htaccess?使用.htaccess 重定向IP 的条件语句?
【发布时间】:2011-03-17 17:35:09
【问题描述】:

大家好,我正在托管自己的服务器,并且有两个 IP 地址(一个用于从内部网连接的人,一个用于从外部连接的人),我有两个动态 dns 重定向到这些 ip。我刚刚在基于 apache2 的服务器上安装/设置了 SSL,并尝试使用 .htaccess 强制用户使用 https。我使用像

这样的语句让它工作
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$https://mywebsite.dyn.site/$1 [R,L]

问题在于,由于我在同一个网站上有两个单独的域名,因此该语句会将所有流量重定向到一个特定域。我想我要问的是是否有 a.) 一种放置条件 if 语句来检查其 ip 的方法,或者最好 b.) 一种从硬编码中删除“mywebsite”并放置一个变量的方法无论用户输入什么。

任何帮助将不胜感激。

【问题讨论】:

  • 你可以在你的 RewriteRule 之前使用多个 RewriteCond...所以检查端口和 HTTP_HOST(我认为)。

标签: .htaccess mod-rewrite https apache2


【解决方案1】:

好吧,我搜索了大约半个小时,然后在我发布 SO 之后,我找到了答案……哈哈。对于任何尝试做类似事情的人,您所要做的就是使用一个变量作为网址,而不是硬编码。

我这样做的方法是将其添加到我的 .htaccess 中:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

这样,它只需输入任何 url 并将其从 http 更改为 https

干杯

【讨论】:

  • 您可以单击空勾将问题标记为已回答。作为奖励(至少如果是其他人回答),你们俩都会获得声望分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多