Можно ли определить, является ли «www.» был введен как часть URL в адресную строку чисто из PHP?

Доступ к сайту без «www.» аналог в браузере,

как в «site.com», по-прежнему будет отображаться «www.site.com» из $ _SERVER [ ‘SERVER_NAME’];

Это может показаться не таким уж большим делом, просто определите это на внешнем интерфейсе при совершении Ajax-вызовов, используя что-то вроде location.href, право?

Или просто удалите «www.» от SERVER_NAME. Хорошее решение, но не решает основную проблему. Теперь код PHP должен опираться на JavaScript? Разве бэк-энд не должен быть в состоянии определить адрес да-www против адреса no-www?

Кроме того, когда у вас есть <form action = «URL»>, не говоря уже о том, что PHP генерирует код, который должен вызывать сервер, решение, использующее $ _SERVER [‘SERVER_NAME’], приведет к ошибкам междоменной безопасности.

Так — вопрос в том — Есть ли способ в PHP автоматически определить, есть ли www. часть была или не была введена в адресную строку браузера как часть имени домена?

Проблема в том, что теперь у вас есть серверный PHP-код, основанный на JavaScript, который иногда может быть отключен в браузере. И это просто звучит как неуклюжая практика.

0

Решение

Да, это вполне возможно.

<?php
//Will be true if www. exists, and false if not.

$host_has_www = (strpos($_SERVER['HTTP_HOST'], 'www.') !== false) ? true : false;

if ($host_has_www == true) {
//Do something
}

?>
1

Другие решения

Заставить www отредактировать .htaccess

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

тогда каждый запрос всегда будет иметь www или использовать аналогичный метод для удаления www

0

По вопросам рекламы [email protected]