Почему вы не выражаете иерархию статей в структуре URL? Вы можете написать:
tutorials/ ← list of all tutorials
tutorials/java ← a list of java tutorials
tutorials/java/a-very-cool-tutorial ← points to the very cool tutorial
Таким образом, посетитель может сказать, что Очень крутой учебник - это учебник по Java, и, если вы не против SEO, эта версия тоже подходит для этого.
Редактировать
Согласно вашему комментарию, статья может иметь несколько тегов, а на вашем сайте есть списки статей, которые относятся к набору тегов. В этом случае вы можете выбрать эту концепцию:
tutorials/
tutorials/a-very-cool-tutorial
tags/java ← tags have a separate prefix
tags/java+soap
Или другое:
tutorials/
tutorials/a-very-cool-tutorial.html
tutorials/java/
tutorials/java+soap/ ← the trailing slash indicates that it's a listing
(И вы можете написать третий, который может быть лучше или нет.) Это вопрос вашего вкуса.
В дополнение к выбранной схеме я предлагаю указать идентификатор статьи или дату публикации в URL, чтобы избежать конфликта URL.
tutorials/20090509/a-very-cool-tutorial ← a visitor friendly way
tutorials/928/a-very-cool-tutorial ← ID in URL like how Stack Overflow does
Редактировать 2
Ваше последнее обновление вопроса уточнило, что кроме тегов у вас обоих есть что-то вроде категорий - я имею в виду учебные пособия, инструменты, ресурсы. Это придает ненужную сложность проблеме. Я думаю, что было бы лучше обрабатывать эти дополнительные аспекты как теги тоже. Так что tutorial - это просто еще один тег, подобный java , и он работает со всеми идеями, описанными выше.
/a-very-cool-tutorial ← article (beware of URL collision)
/java/ ← all Java posts
/tutorials+java+soap/ ← all Java related SOAP tutorials
/tags/tutorials+soap/ ← you can use an extra prefix