htaccess 条件重定向到 https

htaccess 条件重定向到 https

因此,我尝试将除我的内部网络 192.168.x 和 10.x 之外的所有访问者重定向到 https

RewriteCond %{HTTPS} off
RewriteCond %{REMOTE_ADDR} !=(192\.168\.$|10\.$)
RewriteRule (.*) https:/%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这里出了点问题,因为无法正常工作,从内部网络连接仍然将我重定向到 https

答案1

你的 RewriteCond Regex 是罪魁祸首。你应该把它改成

RewriteCond %{REMOTE_ADDR} !^(192\.168|10\.)

点击这里简短解释我的正则表达式如何工作并点击这里你的正则表达式是如何工作的


详细解释:

点字符.在正则表达式中具有特殊含义。它将匹配除换行符之外的所有字符。因此,192#168#它将匹配您的正则表达式(192.168.$|10.$)。如果您想匹配点字符,请使用\字符对其进行转义。另外,您不想添加美元字符,$因为它会假定标记行尾。

相关内容