Постоянная ссылка / лучшие рекомендации - PullRequest
3 голосов
/ 14 ноября 2009

Я собираюсь настроить постоянные ссылки на веб-сайте, и мне интересно, какие соглашения я должен соблюдать в отношении их генерации из существующей таблицы новостных статей.

Пока вот правила / шаги, которые я придумал:

  1. Создайте файл дампа моей живой базы данных, настройте его локально
  2. Добавить новый столбец 'permalink' в мою таблицу news_articles с помощью ALTER table ADD column slug VARCHAR(100) (Не уверен насчет типа или длины данных, предложения?)
  3. Обновите каждую строку в моей таблице news_articles, чтобы

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

Отказ от ответственности: названия русские Кириллица а не английский, поэтому я не думаю, что я могу сойти с рук с легким замена регулярных выражений, если, возможно, я полагаться на диапазоны кода Unicode, кроме я не знакомы с диапазоном Кириллица так что сделаю мануал замена и правила, которые я определил пока что:

  • заменить все пробелы подчеркиванием
  • убрать начальные / конечные запятые и точки
  • удалить все одинарные / двойные кавычки
  • удалить все знаки вопроса
  • & становится русским словом для 'и'

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

Ответы [ 2 ]

3 голосов
/ 15 ноября 2009

Я думаю, что проблема в том, что многие программы не допускают URL-адреса Unicode ... Википедия использует эти символы в тексте ... в браузере они выглядят хорошо, но при отправке ссылки они становятся очень длинными, как ...

http://th.wikipedia.org/wiki/%E0%B8%AA%E0%B9%89%E0%B8%A7%E0%B8%A1%E0%B9%83%E0%B8%99%E0%B8%9B%E0%B8%A3%E0%B8%B0%E0%B9%80%E0%B8%97%E0%B8%A8%E0%B9%84%E0%B8%97%E0%B8%A2

Я думаю, что единственное хорошее решение - это конвертировать только в алфавит A-Z .. и другие языки используют только идентификатор ..

Если у кого-то есть хорошее решение для этого, я хотел бы услышать об этом:)

3 голосов
/ 14 ноября 2009

Некоторые комментарии / предложения

  • заменить все пробелы подчеркиванием (как насчет переноса вместо подчеркивания, как теги в SO)
  • убрать начальные / конечные запятые и точки (также начальные / конечные пробелы)
  • удалить все одинарные / двойные кавычки (начальные и конечные, если не заменить дефисами)
  • убрать все знаки вопроса (как и выше, а также все другие знаки пунктуации, такие как «» (левые / правые двойные кавычки) и такие символы, как%, = и т. Д. И т. Д.) & становится русским словом для 'и' (Вы имеете в виду и? должен читаться без необходимости кодирования URL)

Обновление:
* преобразование всех символов в нижний регистр (довольно субъективно, но это обычная практика и более удобочитаемо, чем весь верхний регистр)

Еще одно предположение, это трюк, который я использовал, чтобы проверить, не содержит ли мой путь URL-адреса или слизняк строку в кодировке urlencoded. После того, как я сформулировал строку слага, я выполню код urlencode и сравню его с предварительно закодированным. Они должны быть одинаковыми.

Пример для этого поста: если слаг был "permalink-slug:best-practices", то урлен-кодированный будет "permalink-slug%3Abest-practices", на самом деле не читаемый и побеждающий цель слага, с которой вы будете знать / соглашаться. Так что действительно легко узнать, что оригинальная строка не работает, потому что после urlencoding она отличается.

...