Я не являюсь экспертом в настройке 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-адреса на доменное имя, поэтому это означает, что когда пользователь нажимает на IP-адрес в поиске Google, он должен открывать безопасное доменное имя 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}