這是我在 /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,但在移動瀏覽器或其他桌面/服務器瀏覽器上,它不是。
任何人都可以幫助我嗎?
uj5u.com熱心網友回復:
試試這個,但我不太確定這會解決你的問題:
<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 的重定向僅發生在從 10.10.10.0 到 10.10.10.255 的遠程 IP 地址(客戶端的 IP 地址)上?而且很有可能手機的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),^實際上并沒有在記憶體中存盤任何內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/375531.html
