По поводу robots.txt (новичкам сюда), а как там запретить исключительно последний слэш "/", регулярками? Пробовали, получалось? Если да - написали бы более развёрнуто сюда, людям почитать полезно было бы.
BasePelleta: Статус пользователя непостоянный, следовательно, нужно будет создать поля: время присвоения статуса, время истечения статуса.
Значит, все-таки отдельная таблица статусов?
На данный мент поле `bb_status` text NOT NULL имеет записи типа [Journalist-15600045430345], а в выводе имеем статус Journalist, который действительно передается в сессию, что позволяет избежать лишних запросов к базе.
Меня смущает тип поля - text, все-таки varchar 25 обрабатывалось бы быстрее?
В таблице 50.000 пользователей, если кол-во сайтов равно 30, то записей статусов в таблице должно быть 1 500 000, что, на мой взгляд, избыточно, ведь у большинства пользователей статус - Simple, статус Journalist, Profi и т.д. будет только у нескольки сотен пользователей. Какова будет структура в этом случае?
Ну во-первых нужно заняться нормализацией БД. Т.е. сделать отдельную таблицу всевозможных статусов: status_id | status_text
А в таблицу пользователей записывать только числовое id - это сократит как размер БД, так и увеличит производительность.
А во-вторых если делать отдельную таблицу, в которую будут записываться пользователи и их статусы на разных сайтах, то можно (и нужно) статус по-умолчанию (Simple) туда не заносить, - только отличные от него статусы. И при выборке, если записи нет. присваивать статус по умолчанию. Это сильно сократит размер таблицы с полутора миллионов.
rame0: BasePelleta, для чего нужно число после названия статуса?
А зачем это делать через directoryindex и рерайты? Я бы в index.html с помощью php поставил 301 редирект на нужную страницу и все. Поисковики все склеят как нужно.
LEOnidUKG: Безопасность чего?! Мы тут про ВЫВОД информации, а не про запись. Пусть эти статусы в куках и всё. Сможет поменять из куков? Ну и куда он их поменяет? Для себя родного чтоли? Они же в базу не будут писаться.
Ну а кто ж его знает что там за статусы. Может там админ/не админ :)
Посмотрел несколько сайтов. Ну во-первых контент даже не рерайт, а просто копипаст. Во-вторых на некоторых сайтах двойной title (я имею ввиду что на странице - два тега title). В третьих - что за странные урлы? Про modrewrite и ЧПУ слышали? "catalog.php?id=999" - такое еще нормально в современном интернете, но у вас какая-то каша.
Зато для друпала, наскока мне помнится, движок либрусека есть в паблике ☝
По поводу robots.txt (новичкам сюда), а как там запретить исключительно последний слэш "/", регулярками? Пробовали, получалось? Если да - написали бы более развёрнуто сюда, людям почитать полезно было бы.
А в чем проблема?
Disallow: */$
SELECT * FROM `table_name` WHERE FIND_IN_SET( 'word', `column_name` ) > 0
Статус пользователя непостоянный, следовательно, нужно будет создать поля: время присвоения статуса, время истечения статуса.
Значит, все-таки отдельная таблица статусов?
На данный мент поле `bb_status` text NOT NULL
имеет записи типа [Journalist-15600045430345], а в выводе имеем статус Journalist, который действительно передается в сессию, что позволяет избежать лишних запросов к базе.
Меня смущает тип поля - text, все-таки varchar 25 обрабатывалось бы быстрее?
В таблице 50.000 пользователей, если кол-во сайтов равно 30, то записей статусов в таблице должно быть 1 500 000, что, на мой взгляд, избыточно, ведь у большинства пользователей статус - Simple, статус Journalist, Profi и т.д. будет только у нескольки сотен пользователей. Какова будет структура в этом случае?
Ну во-первых нужно заняться нормализацией БД. Т.е. сделать отдельную таблицу всевозможных статусов: status_id | status_text
А в таблицу пользователей записывать только числовое id - это сократит как размер БД, так и увеличит производительность.
А во-вторых если делать отдельную таблицу, в которую будут записываться пользователи и их статусы на разных сайтах, то можно (и нужно) статус по-умолчанию (Simple) туда не заносить, - только отличные от него статусы. И при выборке, если записи нет. присваивать статус по умолчанию. Это сильно сократит размер таблицы с полутора миллионов.
BasePelleta, для чего нужно число после названия статуса?
Судя по всему, это время действия статуса.
А зачем это делать через directoryindex и рерайты? Я бы в index.html с помощью php поставил 301 редирект на нужную страницу и все. Поисковики все склеят как нужно.
Безопасность чего?! Мы тут про ВЫВОД информации, а не про запись. Пусть эти статусы в куках и всё. Сможет поменять из куков? Ну и куда он их поменяет? Для себя родного чтоли? Они же в базу не будут писаться.
Ну а кто ж его знает что там за статусы. Может там админ/не админ :)
ТС, 1 раз считывайте все статусы и впишите их в сессию или куки, пусть берутся оттуда данные и не надо дёргать БД каждый раз.
А как же эта, как ее, безопасность? :(
У битрикса есть нормальные встроенные средства для создания ЧПУ во многих компонентах. А 90% дублей страниц у битрикса закрываются тремя директивами:
Disallow: /*ELEMENT_ID*
Disallow: /*SHOWALL*
Disallow: /*PAGEN*
Добавлю к сообщению madwat.
Посмотрел несколько сайтов. Ну во-первых контент даже не рерайт, а просто копипаст. Во-вторых на некоторых сайтах двойной title (я имею ввиду что на странице - два тега title). В третьих - что за странные урлы? Про modrewrite и ЧПУ слышали? "catalog.php?id=999" - такое еще нормально в современном интернете, но у вас какая-то каша.
жесть ваще 🤪 (номера звездочками закрыл я).
Я бы создал отдельную таблицу для статусов. user_id | site_id | status как-то так.