Преобразовать заголовок пользователя (текст) в URL, что вместо пробелов, # и других символов?
У меня есть форма на сайте, где пользователи могут добавлять новые страницы. Я должен создать SEO-дружественные URL и сделать их уникальными. Какие символы я могу отображать в URL, я знаю, что пробелы нужно преобразовать в подчеркивание:
"" -> "_" и перед ним - подчеркивает что-то еще, например:
"_" -> / подчеркивание
Легко сделать заголовок из URL-адреса назад.
Но в моем конкретном заголовке могут быть все символы с клавиатуры, даже: @#%:"{/\';.>
Есть ли противопоказания не использовать эти символы в URL?
Важным является:
-легко генерировать URL и заголовок из URL обратно (без запросов к базе данных)
Каждый заголовок уникален, поэтому URL должен быть слишком
-ЕО дружественные URL
1 ответ
Разве вы не запрашиваете базу данных для получения контента в любом случае? В этом случае просто захватите поле заголовка в том же запросе.
Единственный способ надежно получить заголовок из URL-адреса - "закодировать его" (в PHP вы используете urlencode()
функция). Тем не менее, вы в конечном итоге с URL-адресами, как это:
My%20page%20title
Вы не можете заменить любые символы, потому что тогда у вас не будет уникальных URL. Например, если вы заменяете пробелы подчеркиванием, все следующие заголовки приведут к одному и тому же URL:
My page title
My_page title
My_page_title
Короче говоря: не беспокойтесь об одном дополнительном попадании в базу данных, просто используйте оптимизированные для SEO URL-адреса, ограничив их строчными буквами az, 0-9 и тире, например my-page-title
, Как я уже сказал, вы все равно можете просто получить все в одном запросе.