Как переписать URL с заголовком сообщения? - PullRequest
1 голос
/ 21 июня 2011

Рассмотрим URL

www.example.com/paper-ads-details.php?req=43397&rnd=1308546000

Я хочу изменить эти URL как:

www.example.com/jobs-in-chanai.php

, где req=43397 указывает на пост под названием jobs в chanai Как я могу переписать это? Пожалуйста, помогите мне.

Ответы [ 3 ]

1 голос
/ 21 июня 2011

В вашей базе данных вам нужен столбец для «чистого URL» или «слаг», а также упомянутых правил .htaccess.

Я использую эту функцию (не мой код):

   function makeSlug($string, $force_lowercase = true, $anal = false) {
     $strip = array("~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "=", "+", "[", "{", "]",
                   "}", "\\", "|", ";", ":", "\"", "'", "‘", "’", "“", "”", "–", "—",
                   "—", "–", ",", "<", ".", ">", "/", "?");
    $clean = trim(str_replace($strip, "", strip_tags($string)));
    $clean = preg_replace('/\s+/', "-", $clean);
    $clean = ($anal) ? preg_replace("/[^a-zA-Z0-9]/", "", $clean) : $clean ;
    return ($force_lowercase) ?
        (function_exists('mb_strtolower')) ?
            mb_strtolower($clean, 'UTF-8') :
            strtolower($clean) :
        $clean;

}

Я сохраняю это в столбце и делаю что-то вроде:

"SELECT * FROM `content` WHERE `clean_url` = '" . mysql_real_escape_string($cleanURL) . "'";
1 голос
/ 14 декабря 2011

После трудного времени я получил способ, и теперь делюсь им с другими пользователями ... Предположим, что необходимый URL-адрес www.example.com/programmer-Jobs-in-luton <br /> Правило будет похоже на ...RewriteRule ^([a-zA-Z0-9-]+)$ job-details.php?slug=$1 [L]

1 голос
/ 21 июня 2011
  1. Если вы хотите использовать .htaccess, вам нужно написать скрипт для статической генерации правил перезаписи, поэтому файл .htaccess содержит строки типа
    RewriteRule ^jobs-in-chanai.php /paper-ads-details.php?req=43397&rnds=1308546000 [L]

  2. Обработка маршрутизации в начале запроса в PHP.Проанализируйте (и отфильтруйте) URL, чтобы найти сообщение, основываясь на параметре slug, а не на параметрах req и rnds.При необходимости закэшируйте результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...