Что лучше для сайта рельсов? /{логин} или / пользователь / {логин}

Что лучше (для пользователя, для долговечности, для производительности, для чего угодно) иметь:

http://{site}/ {login}, например, http://wildobs.com/adam_jack

или же

Http://{сайт}/ пользователь / {} Войти

Плюсы бывшего:

  • Пользователь чувствует себя более особенным.
  • URL-адреса короче.

Минусы бывшего:

  • Не может быть пользователей с логинами, соответствующими ключевым словам, и ключевые слова, вероятно, со временем растут.

Очевидно, что это важно, чтобы получить правильные (или ошибаться и придерживаться), поскольку все пользовательские URL-адреса основаны на нем. Смена сайта будет казаться самоубийством.

Перевешивают ли минусы (особенно со временем) плюсы?

5 ответов

Я бы сказал, что минусы перевешивают плюсы, поэтому перейдите с /user/login over /login. Подумайте о стековом потоке, поскольку он также MVC: я думаю, что проще программировать, зная, что все в /user/blah всегда будет ссылаться на пользователя, тогда как если вы этого не сделаете, вам придется рассмотреть все возможности.

Например, в site / foo foo может быть именем пользователя, страницей администратора или каким-либо другим ключевым словом. Намного легче иметь дело, если вы все правильно сегментируете, так что вы знаете, что если вы видите site / user / foo, это всегда пользователь с именем foo.

Вы могли бы рассмотреть третий вариант:

Разграничение пользователей одним символом, а не каталогом, как в unix.

Http: // сайт / ~ имя пользователя

Это может даже привести к modrewrite к / user / username, если это более удобно.

Тогда у вас есть короткие имена, с которыми легко иметь дело, и ни одна из ваших обычных страниц не будет использовать этот специальный символ.

-Адам

Существует очень важная проблема с разрешением пользователям создавать произвольные имена в корне веб-сервера (как они могли бы, выбирая свой собственный логин, если вы используете /{логин} вместо / пользователь /{логин}): некоторые имена имеют особые магические значения, и эти значения определяются третьими лицами. Например:

  • robots.txt, также известный как "стандарт исключения роботов", сопровождаемый всеми хорошими поисковыми системами.
  • favicon.ico, который начинался как стандарт Internet Explorer, а затем был принят несколькими другими браузерами.
  • Некоторые веб-сайты (по крайней мере, Google и IIRC Yahoo) используют тот факт, что вы можете создать файл с особым именем в корне веб-сервера в качестве доказательства того, что вы являетесь веб-мастером сайта, и, таким образом, вы можете получить доступ к некоторым дополнительным функциям (например, Google Webmaster Tools).

Есть несколько других; Я слышал о файлах Sitemap и файлах, обеспечивающих дополнительный междоменный доступ, но я (или кто-либо еще) не могу знать все из них.

Из RESTful MVC последний раз, когда я проверял пример плагина Restful Authentication, это шаблон создания сеанса. Таким образом, вместо входа в систему пользователь создает сеанс для пользователя. В этом случае GET http://{site}/session/new что бы показать экран входа и POST http://{site}/session с правильными параметрами войдет пользователь, если аутентификация прошла успешно.

Затем, если вы хотите, можете создать новый маршрут для http://{site}/login что бы перенаправить на http://{site}/session/new, так же DELETE http://{site}/session выйдет из системы

Лично я бы пошел на /user / {логин}

Использование /{login} слишком похоже на загромождение глобального пространства имен, и мы все знаем, что глобальные перемены плохи;)

Другие вопросы по тегам