Как переписать URL-адрес с заголовком заголовка сообщения?

Рассмотрите URL-адрес

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

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

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

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

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

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

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

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

  function makeSlug($string, $force_lowercase = true, $anal = false) { $strip = array("~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "=", "+", "[", "{", "]", "}", "\\", "|", ";", ":", "\"", "'", "&#8216;", "&#8217;", "&#8220;", "&#8221;", "&#8211;", "&#8212;", "—", "–", ",", "<", ".", ">", "/", "?"); $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) . "'"; 

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