Перенаправить неправильные URL-адреса SEO на правильные - PullRequest
1 голос
/ 24 октября 2011

В настоящее время я использую следующие правила для перенаправления со стандартных URL-адресов на SEO-URL:

RewriteRule ^books/v/([0-9]+)/(.*)/page([0-9]+) books.php?type=book&id=$1&title=$2&page=$3 [L]
RewriteRule ^books/c/([0-9]+)/(.*)/page([0-9]+) books.php?type=category&id=$1&title=$2&page=$3 [L]
RewriteRule ^books/v/([0-9]+)/(.*) books.php?type=book&id=$1&title=$2 [L]
RewriteRule ^books/c/([0-9]+)/(.*) books.php?type=category&id=$1&title=$2 [L]
RewriteRule ^books books.php [L]`

Теперь я хотел бы автоматически перенаправить URL-адреса с правильными идентификаторами и неправильными заголовками на правильныеURL.

Stackoverflow выполняет аналогичные действия - если вы введете URL-адрес вопроса с правильным идентификатором, но с неверным соответствующим заголовком, он автоматически перенаправит вас на правильный URL-адрес.

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

1 Ответ

3 голосов
/ 24 октября 2011

PHP - это способ сделать перенаправление следующим образом.

Основная идея проста:

  • Вызовите скрипт PHP с идентификаторами и заголовками, как показано выше

  • Внутри PHP-скрипта загрузите запись с идентификатором из базы данных

  • Соответствует заголовку записи в базе данных и заголовку в URL.

  • Если они не совпадают, перенаправьте заголовок на правильный URL с идентификатором и заголовком из базы данных:

    header("Location: /books/v/123456");
    die();
    
...