Intereting Posts
Обновить страницу без потери значения Post UTF 8 String удаляет все невидимые символы, кроме строки новой строки диспетчер иногда вызывает код из другого приложения MySQL Search w / Упорядоченные подстановочные знаки и извлечение их значений htmlspecialchars & ENT_QUOTES не работает? Как сортировать или перечислять все «ожидающие» состояния parsing url – php, проверить, существует ли схема, проверить правильность URL-адреса Отношения один к одному на двух таблицах, разделяющих первичный ключ Функция isset () возвращает true, даже если элемент не задан Что это за синтаксис PHP? Очистка и проверка формы php Как измерить относительную стоимость исполнения различных методов хеширования в PHP? обновить div для извлечения информации из базы данных без обновления всей страницы Рассчитайте разницу между двумя датами в шаблоне smarty 3 prestashop Сортировка объекта (SimpleXMLElement) php

URL-адрес перезаписи, включая заголовок

Первоначально мне удалось переписать URL-адрес, используя идентификатор

с кодом htaccess :

RewriteRule ^link/([0-9]+)\.html$ sub_index.php?link_id=$1 

и код ссылки

 a href="link/id.html"> 

Он успешно отображает:

Затем я попытался сделать url следующим: mysite.com/link/Trekking в Непале / 6.html, где «Трекинг в Непале» – это заголовок в базе данных

Я написал код htaccess :

 RewriteRule ^link/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ sub_index.php?link_id=$1 

и код ссылки :

 a href="link/title/id.html"> 

Я не могу успешно переписать свой url в желаемый формат и получить сообщение. Запрошенный URL не найден на сервере.

Также, когда я искал в других местах, я не видел места, название написано как «Трекинг в непале».

Мне интересно, нужна помощь

благодаря

Во-первых, ваш код перезаписи неверен:

 RewriteRule ^link/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ sub_index.php?link_id=$1 

Ваш link_id равен $ 2, ваш заголовок – $ 1. Поэтому вы должны использовать:

 RewriteRule ^link/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ sub_index.php?link_id=$2 

Затем вы должны использовать функцию slug для своего названия, так что это более дружелюбный URL. Я использую что-то вроде этого:

 function slug($string, $spaceRepl = "-") { // Replace "&" char with "and" $string = str_replace("&", "and", $string); // Delete any chars but letters, numbers, spaces and _, - $string = preg_replace("/[^a-zA-Z0-9 _-]/", "", $string); // Optional: Make the string lowercase $string = strtolower($string); // Optional: Delete double spaces $string = preg_replace("/[ ]+/", " ", $string); // Replace spaces with replacement $string = str_replace(" ", $spaceRepl, $string); return $string; } 

slug("Trekking in Nepal") будет trekking-in-nepal , поэтому ваша ссылка будет:

 /link/trekking-in-nepal/6.html 

Затем он должен работать с вашим кодом перезаписи.

Кроме того, мне нравится переписывать мои ссылки следующим образом:

 /link/trekking-in-nepal-6.html 

Для этого я использую следующее:

 RewriteRule ^link/([a-zA-Z0-9_-]+)-([0-9]+)\.html$ sub_index.php?link_id=$2 

Удачи!

Пытаться:

 RewriteRule ^link/([a-zA-Z0-9_- ]+)/([0-9]+)\.html$ sub_index.php?link_id=$2 

Однако вы должны использовать rawurlencode когда вы rawurlencode заголовок, чтобы он работал правильно в любом браузере.