База данных на основе динамического перенаправления сайта
Доброе утро,
Я работаю над сайтом, который будет динамически сравнивать две вещи на каждой странице от mysql до php. Для примера, скажем, сравнивая туристические направления. Пример URL с одной из этих страниц будет "http://sometravelwebsite.com/destinations/compare/New-York-City-vs-Tokyo"
Способ написания php, порядок городов не имеет значения. Если вы введете
../New-York-City-vs-Tokyo
вы получите ту же информацию, как если бы вы вошли
../Tokyo-vs-New-York-City
Разница лишь в том, что информация о городе находится слева, а информация о городе справа.
Для целей SEO было бы лучше, если бы существовала только одна версия страницы, а другой URL-адрес перенаправлял бы на основной URL-адрес (например, ../New-York-City-vs-Tokyo
это основной URL, который индексируется Google, но если другой URL: ../Tokyo-vs-New-York-City
введен, он 301 перенаправляет на основной URL).
Мой вопрос: это можно сделать динамически?
Единственное, о чем я могу думать, - это использовать автоинкрементный индекс в базе данных mysql и всегда указывать город с меньшим индексом слева, а город с более высоким индексом справа.
Тем не менее, я бы предпочел, чтобы у меня был какой-то контроль над тем, какой город находится на какой стороне страницы. В то время как я не собираюсь проходить и решать, какой город идет с какой стороны для КАЖДОГО сравнения (что может сойти с ума, больше городов, которые были добавлены), я хотел бы иметь контроль над некоторыми из них, чтобы поставить город с более желательные характеристики в левой части страницы, где они будут видны первыми (при условии, что люди читают слева направо).
Может кто-нибудь придумать лучший способ сделать это динамически через php, mysql, .htaccess или любым другим способом?
Любая помощь будет принята с благодарностью!
2 ответа
Динамический PHP обрабатывает оба, но если они приходят из поисковой системы, вы хотите перенаправить? Придерживайтесь простого соглашения об именах или всегда упорядочивайте их в алфавитном порядке или что-то, чтобы у вас не было отдельных вариантов. Я уверен, что Google не будет возражать, если его 'A Vs B' или 'B Vs A' я уверен, что он будет возвращать оба одинаково, если они будут полезны для поиска.
Вы можете поставить лучший объект слева. Сделайте URL всегда в алфавитном порядке, поместите 2 города (или больше) в массив и сортируйте по алфавиту. Что касается отображения на странице, запросите вашу базу данных и отобразите их слева направо (сортировка по вашей заявке MySQL) на основе рассчитанного "балла" того, который, по вашему мнению, будет конвертировать выше.
Создать и массив как
$allowed_left = array('New York City','Milan', 'London');
затем проверьте, если city1 не разрешен слева, и перенаправьте, если true, на "обратный URL", поменяв местами города
if ($city1 != in_array($allowed_left) ){
if ($city2 != in_array($allowed_left)){
header("Location: http://sometravelwebsite.com/destinations/compare/not_allowed.php");
}
else {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://sometravelwebsite.com/destinations/compare/".$city2."-vs-".$city1);
}
}
Очевидно, это предполагает, что один из городов будет разрешен слева, иначе вы можете оказаться в бесконечном цикле, если ни один из них не окажется в списке разрешенных.