База данных на основе динамического перенаправления сайта

Доброе утро,

Я работаю над сайтом, который будет динамически сравнивать две вещи на каждой странице от 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);
   }
}

Очевидно, это предполагает, что один из городов будет разрешен слева, иначе вы можете оказаться в бесконечном цикле, если ни один из них не окажется в списке разрешенных.

Другие вопросы по тегам