RewriteCond 有时有效
RewriteCond works sometimes
这是我在 /etc/apache2/sites-enabled/dynamic-vhosts.conf:
上的代码
<VirtualHost *:80>
DocumentRoot "/var/www/SITE.com.br"
ServerName SITE.com.br
RewriteEngine On
RewriteCond %{REMOTE_ADDR} 10\.10\.10\.[0-255]
RewriteRule ^(.+)$ https://SITE.com.br/ [R=301]
我的问题是,在某些情况下它强制使用 HTTPS,但在其他情况下则不是。
示例:在某些桌面浏览器上,它重定向到 HTTPS,但在移动浏览器或其他 desktops/servers 浏览器上,它不是。
有人可以帮助我吗?
试试这个,但我不确定这是否会解决您的问题:
<VirtualHost *:80>
DocumentRoot "/var/www/SITE.com.br"
ServerName SITE.com.br
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^10\.10\.10\.
RewriteRule ^(.+)$ https://SITE.com.br/ [R=301]
我不太确定你为什么使用 RewriteCond %{REMOTE_ADDR}
,你知道它实际上使 HTTP 到 HTTPS 重定向只发生在远程 IP 地址(客户端的 IP 地址)从 10.10.10.0到 10.10.10.255?而且手机IP地址在10.10.10之外的可能性非常大,比如10.10.11.123!
如果您想为任何 IP 地址重定向到 HTTPS, 试试这个:
<VirtualHost *:80>
DocumentRoot "/var/www/SITE.com.br"
ServerName SITE.com.br
RewriteEngine On
RewriteRule ^(.+)$ https://SITE.com.br/ [R=301]
您还可以将 RewriteRule ^(.+)$ https://SITE.com.br/ [R=301]
中的 ^(.+)$
简化为 RewriteRule ^ https://SITE.com.br/ [R=301]
。由于'^(.+)' 的意思是“匹配并存储当前行中的所有内容”,它使用更多内存 (RAM),^
并没有真正在内存中存储任何内容。
这是我在 /etc/apache2/sites-enabled/dynamic-vhosts.conf:
上的代码<VirtualHost *:80>
DocumentRoot "/var/www/SITE.com.br"
ServerName SITE.com.br
RewriteEngine On
RewriteCond %{REMOTE_ADDR} 10\.10\.10\.[0-255]
RewriteRule ^(.+)$ https://SITE.com.br/ [R=301]
我的问题是,在某些情况下它强制使用 HTTPS,但在其他情况下则不是。 示例:在某些桌面浏览器上,它重定向到 HTTPS,但在移动浏览器或其他 desktops/servers 浏览器上,它不是。
有人可以帮助我吗?
试试这个,但我不确定这是否会解决您的问题:
<VirtualHost *:80>
DocumentRoot "/var/www/SITE.com.br"
ServerName SITE.com.br
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^10\.10\.10\.
RewriteRule ^(.+)$ https://SITE.com.br/ [R=301]
我不太确定你为什么使用 RewriteCond %{REMOTE_ADDR}
,你知道它实际上使 HTTP 到 HTTPS 重定向只发生在远程 IP 地址(客户端的 IP 地址)从 10.10.10.0到 10.10.10.255?而且手机IP地址在10.10.10之外的可能性非常大,比如10.10.11.123!
如果您想为任何 IP 地址重定向到 HTTPS, 试试这个:
<VirtualHost *:80>
DocumentRoot "/var/www/SITE.com.br"
ServerName SITE.com.br
RewriteEngine On
RewriteRule ^(.+)$ https://SITE.com.br/ [R=301]
您还可以将 RewriteRule ^(.+)$ https://SITE.com.br/ [R=301]
中的 ^(.+)$
简化为 RewriteRule ^ https://SITE.com.br/ [R=301]
。由于'^(.+)' 的意思是“匹配并存储当前行中的所有内容”,它使用更多内存 (RAM),^
并没有真正在内存中存储任何内容。