Apache2

在apache2中使用IP地址配置重定向

  • January 6, 2020

我不是配置 apache 的專家,但我有需要解決的問題。下面是我的虛擬主機 apache 配置,順便說一句,它工作得很好。問題是Google搜尋以某種方式顯示我的 IP 地址而不是我的域名。

<virtualHost somesite.com:80>
       ServerName www.somesite.com
       RewriteEngine On
       RewriteCond %{HTTPS} off
       RewriteCond %{QUERY_STRING} "fbclid=" [NC]
       RewriteRule (.*) /$1? [R=301,L]
       RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

所以現在我知道我需要重定向我的 IP 地址,所以我使用了下面的解決方案,這似乎對我不起作用。此外,我附上了螢幕截圖的 HTTP 站點未打開。但是,我的網站的安全版本正在執行。我想要的只是將我的 IP 地址重定向到域名的解決方案,這意味著當使用者在Google搜尋中點擊 IP 地址時,它應該打開安全的 HTTPS 域名。請幫我。

RewriteCond %{HTTP_HOST} ^111\.11\.111\.11$
RewriteRule (.*) https://www.somesite.com$1 [R=301,L]

以下是打開我的網站的基於 HTTP 的版本時的錯誤螢幕截圖

在此處輸入圖像描述

您的配置中有三個重寫規則:

# Rule 1
RewriteCond %{HTTPS} off
RewriteCond %{QUERY_STRING} "fbclid=" [NC]
RewriteRule (.*) /$1? [R=301,L]
# Rule 2
RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI}
# Rule 3
RewriteCond %{HTTP_HOST} ^111\.11\.111\.11$
RewriteRule (.*) https://www.somesite.com$1 [R=301,L]

由於它們是按順序應用的,並且規則 2 沒有條件,它會覆蓋規則 3。更改規則的順序:

# Rule 1
RewriteCond %{HTTPS} off
RewriteCond %{QUERY_STRING} "fbclid=" [NC]
RewriteRule (.*) /$1? [R=301,L]
# Rule 3
RewriteCond %{HTTP_HOST} ^111\.11\.111\.11$
RewriteRule (.*) https://www.somesite.com$1 [R=301,L]
# Rule 2
RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI}

引用自:https://serverfault.com/questions/997830