Преобразовать название пользователя (текст) в URL, что вместо пробелов, # и других символов - PullRequest
0 голосов
/ 28 мая 2010

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

"" -> "_" и перед ним - подчеркивает что-то еще, например:

"_" -> / подчеркивание

Легко сделать заголовок из URL обратно.

Но в моем названии могут быть все символы с клавиатуры, даже: @ #%: "{/\';.>

Есть ли какие-либо противопоказания, чтобы не использовать эти символы в URL?

Важным является:

- простое создание URL и заголовка из обратного URL (без запросов к базе данных)

- каждый заголовок уникален, поэтому URL тоже должен быть

-SEO дружественных URL

1 Ответ

1 голос
/ 29 мая 2010

Разве вы не запрашиваете базу данных для получения контента в любом случае? В этом случае просто захватите поле заголовка в том же запросе.

Единственный способ надежно получить заголовок из URL-адреса - «закодировать его» (в PHP вы используете функцию urlencode()). Тем не менее, вы получите URL-адреса вроде этого:

My%20page%20title

Вы не можете заменить любые символы, потому что тогда у вас не будет уникальных URL. Например, если вы заменяете пробелы подчеркиванием, все следующие заголовки будут давать один и тот же URL:

My page title
My_page title
My_page_title

Вкратце: не беспокойтесь об одном дополнительном попадании в базу данных, просто используйте оптимизированные для SEO URL-адреса, ограничив их строчными буквами a-z, 0-9 и тире, например my-page-title. Как я уже сказал, вы все равно можете просто получить все за один запрос.

...