2010-12-11 3 views
0

Im using asp.net mvc C#. На основании ввода пользователем я хочу сохранить текст, который они вводят в db, и создать URL-адрес, используя этот текст. также будет уникальный идентификатор, связанный с этим текстом.Создание чистых URL-адресов и управление дублированием

Что я должен учитывать при создании «чистых» URL-адресов?

а также как избежать повторения - каждый URL должен быть уникальным, , так что если 2 человека вводят: «Эй, проверьте мой крутой URL!»

я бы, вероятно, хотите что-то вроде http://www.mysite.com/links/hey-check-my-cool-url/

Как я могу гарантировать, что они всегда будут уникальными и то, что я должен делать, если же описание вводится дважды?

+0

Я ничего не знаю об ASP, но вы можете вставить GUID, поэтому он не повторится. Или просто проверьте, что то, что пользователь вводил, уже находится в БД. – Machinarius

ответ

1

Большинство людей в конечном итоге имеют некоторые варианты решения loannis karadimas. Тем не менее, две схемы, которые я предпочитаю использовать являются:

http:///www.mysite.com/links/xxx/hey-check-my-cool-url 

Это потому, что это указывает на то, что ххх цифры не являются частью названия ссылки (в зависимости от того, что вы делаете).

http:///www.mysite.com/links/hey-check-my-cool-url-xxx 
http:///www.mysite.com/links/hey-check-my-cool-url/xxx 

В основном придерживаясь ххх цифры в конце, потому что для целей SEO (если вы заботитесь), более вероятно, что слова ближе к корню вашего URL имеет более высокий predence для ранга страницы. Конечно, возьмите это с солью, как и большинство других советов по SEO!

PS, я вообще ничего не знаю об ASP.

+0

xxx может быть GUID. и я предпочитаю: http: ///www.mysite.com/links/xxx/hey-check-my-cool-url –

0

Вы можете предварять небольшой (случайный) последовательность или заставить пользователя ввести другую фразу, в зависимости от ваших требований (я бы предпочел первый):

http:///www.mysite.com/links/xxx-hey-check-my-cool-url/ 

Я бы учитывали только буквы и цифры , удаляя все остальное с помощью простого регулярного выражения в качестве белого списка, то есть:

[^\w\d]{1,} 

Это выражение должно соответствовать все, что это не алфавитно-цифровой.

Смежные вопросы