Использование SEO-дружественных ссылок - PullRequest
2 голосов
/ 10 июня 2009

Я занимаюсь разработкой веб-сайта на PHP, и в настоящее время мои ссылки выполнены в стиле Facebook, например,

me.com/profile.php?id=123

Я думаю о переходе на что-то более дружественное к поисковым системам. (как здесь, в stackoverflow), что-то вроде:

me.com/john-adams

Но как я могу отличить двух пользователей с одинаковым именем - или, более правильно, как stackoverflow показывает разницу между двумя вопросами с одинаковым названием? Я думал сделать что-то вроде

me.com/john-adams-123

и разбор URL.

Любые другие рекомендации?

Ответы [ 6 ]

7 голосов
/ 10 июня 2009

Stackoverflow делает что-то похожее на ваш вариант me.com/john-adams-123, за исключением того, что больше похоже на me.com/123/john-adams, где часть john-adams фактически не имеет программного значения. То, как вы предлагаете, немного лучше, потому что числовой идентификатор, не содержащий семантического содержания, находится дальше в праве URL.

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

5 голосов
/ 10 июня 2009

В случае переполнения стека это

/794169/ispolzovanie-seo-druzhestvennyh-ssylok

http://stackoverflow.com/questions <- Constant prefix
/975240                            <- Unique question id
using-seo-friendly-links           <- Any text at all, defaults to title of question.

Facebook, с другой стороны, решил просто заставить всех выбрать уникальный идентификатор. Затем они собираются использовать это в качестве страницы профиля. Что-то вроде http://facebook.com/p/username/. Они решают проблему уникальности между пользователями, просто требуя, чтобы это была какая-то строка, которую пользователь выбирает, уникальная среди всех существующих пользователей.

3 голосов
/ 10 июня 2009

ТАК "читы": -).

Ссылка на ваш вопрос " Использование SEO-дружественных ссылок ", но " Использование SEO-дружественных ссылок " также работает.

Часть после номера - часть, дружественная к SEO, но на самом деле все равно, что там. Я думаю, что по умолчанию используется заголовок вопроса.

Так что в вашем случае вы могли бы создать ссылку как:

me.com/123/john-adams

второй Джон Адамс будет иметь другой идентификатор и уникальный URL-адрес, например:

me.com/111/john-adams
2 голосов
/ 10 июня 2009

Я бы сказал, что предложенное вами решение является лучшим решением для стековых потоков, поскольку оно сохраняет иерархию контента:

me.com/john-adams-123

Использование уникального идентификатора перед именем пользователя просто бессмысленно.

Я бы, однако, рекомендовал принудительное использование типа контента:

me.com/john-adams-123.html

Это позволит использовать согласованные URL при обслуживании различных типов контента.

Кроме того, вы можете использовать sexatrigesimal для уникального идентификатора, чтобы еще больше уменьшить количество ненужных искажений в вашем URL, особенно для старших номеров, но это часто излишне: D

me.com/john-adams-123.html -> me.com/john-adams-3F.html
me.com/john-adams-1234567890.html -> me.com/john-adams-KF12OI.html

Наконец, обязательно используйте 301 перенаправления на несоответствующие доступные URI для перенаправления в «правильную» SEO-дружественную схему для предотвращения штрафов за дублирование содержимого.

0 голосов
/ 25 октября 2011

Чтобы избежать работы со ссылками, содержащими специальные символы, вы можете использовать этот плагин для Zend Framework.

https://github.com/btlagutoli/CharConvert

$filter2 = new Zag_Filter_CharConvert(array(
               'onlyAlnum' => true,
               'replaceWhiteSpace' => '-'
           ));
echo $filter2->filter('éééé ááááá ? 90 :');//eeee-aaaaa-90

это может помочь вам разобраться со строками на других языках

0 голосов
/ 10 июня 2009

Я бы выбрал ваш стиль me.com/john-adams-123, потому что я думаю, что самая левая часть URI имеет большее значение в ранжировании SEO.

На самом деле, если вы хотите использовать это на нескольких контроллерах (не только в профиле пользователя), вы можете захотеть сделать это более похоже на me.com/john-adams-profile-123 с правилом переписывания, перенаправляющим /.+-profile-(\d+) на profile.php?uid=$1, и при этом иметь возможность используйте, скажем, me.com/john-adams-articles-123 для статей этого пользователя ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...