В настоящее время я поддерживаю внутренний php-код для веб-сайта, который позволяет нашим торговым представителям продавать товары и услуги.Если торговый представитель активен, ему / ей присваивается «пользовательский» URL-адрес веб-сайта, который, по существу, привязывает любую активность на этом конкретном сайте к этому представителю.Продажи собираются только на представительных веб-сайтах (мы делаем это для «защиты» наших сотрудников и обеспечения того, чтобы они чувствовали, что мы не продаем за их спиной на открытом родительском сайте).
Например:
www.site.com может выделять все доступные продукты и услуги, но не дает покупателю возможности приобрести
www.site.com/SOMEREPCODE где SOMEREPCODE является уникальным идентификатором для конкретного агента, предоставляет те же параметры, но открывает возможность продавать этот продукт.Есть тысячи таких торговых представителей, поэтому тысячи ссылок указывают на одну и ту же страницу и контент.
Было много споров о том, должны ли мы открыть сайт спередиконец продаж, а также в последнее время.Наша отрасль очень специфична, поэтому мы не слишком беспокоимся о потерях продаж со стороны веб-покупателей, но я верю, что они существуют.У некоторых из наших разработчиков переднего плана есть код «noindex, nofollow» на страницах, и нам говорят, что это предотвращает то, чтобы Google и другие «вносили в черный список» сайт как попытку создать несколько ссылок на один и тот же контент (например, SOMEREPCODE, представляющий более1000 торговых представителей с почти одинаковой страницей без имени и контактного номера).
edit - показ файла htaccess
#if file or directory do not exist, try as an repid
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z-]+)$ index?Rep=$1 [QSA,NC,L]
Приведенная выше логика htaccess проверяет, что введенный код не является существующим файлом или каталогом.Если это не так, SOMEREPCODE сохраняется как переменная для индексации? Rep = SOMEREPCODE.
В верхней части моей страницы индекса, я включаю функцию, чтобы затем проверить, если значение Rep является действительным торговым представителем и если они активны.Если он недействителен или не активен, страница перенаправляется на целевую страницу с ошибкой.Если представитель активен и существует, страница продолжает загружаться после установки соответствующих переменных SESSION.
indexInclude
<?php
if(isset($_GET['Rep']) && $_GET['Rep'] != NULL) {
//DB connectors called
$sql = "SELECT * FROM reps WHERE repcode = ? AND status = 'Active' LIMIT 1";
$stmt = $db->prepare($sql);
$stmt->execute(array($_GET['Rep']));
while ($row = $stmt->fetch()) {
$_SESSION['repname'] = $row['repname'];
//collect other rep information
}
if( !isset($_SESSION['repname']) && empty($_SESSION['repname']) ) {
header("Location: unavailable");
exit;
} else {
$_SESSION['sales'] = "Y";
}
} elseif( !isset($_SESSION['sales']) && !isset($_GET['Rep']) ) {
$_SESSION['sales'] = "N";
}
?>
Страница индекса в этом случае вообще не изменяется, только областисайта, который «отображается» в присутствии $ _SESSION ['open'] == 'Y'.
Это действительно так?Есть ли способы справиться с этой ситуацией, которые позволили бы нам открыть сайт и для веб-продаж?