Возникла задача ограничить отображаемых в списке пользователей для веб-доступа. Для всех остальных клиентов необходимо показывать полный список пользователей. Приведу пример, как это решено у нас.
Веб-сервер — apache.
После публикации базы на сервере в созданной директории (где лежит файл default.vrd) создаем файл .htaccess
с содержимым вида
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_URI} #k8SjZc9Dxk/{название базы}/ru_RU/e1cib/users$
RewriteRule #k8SjZc9Dxk(.*)$ /users.txt [R=301,L]
и рядом файл users.txt со списком нужных пользователей.
Тестовый пользователь#k8SjZc9DxkM
Ленин Владимир#k8SjZc9DxkM
Сталин Иосиф#k8SjZc9DxkM
Таким образом, будут отображаться только те пользователи, которых мы указали в этом файле.
Это всего лишь наш опыт, но, может быть, он будет кому-то полезен 🙂
Побольше бы таких фишек. Плюс однозначно.
Конечно полезно.Однозначно в копилку знаний,автору плюс. Спасибо за информацию.
Плюсую. А можно этот список выводить только для пользователей, подключившихся через интернет (не локально)? И еще бы такое же решение только для IIS.
А можно сделать функцию типа «Запомнить меня», чтобы каждый раз не вводить логин с паролем?)
(3) Йожкин Кот, думаю, что можно поиграться с публикацией по разным адресам для инета и для внутренней сети. В IIS, думаю, способ почти такой же, но его под рукой нет и сервер на линуксе.
(4) Sirruf, что-то я сомневаюсь в такой возможности) ну по крайней мере, это уже не средствами веб-сервера.
(0) Как понимаю таким способом можно делать и запрет доступа к определенным страницам конфигурации, например окно «О программе» ?
Кладу файл .htaccess — ошибка 500 Internal Server Error (
А если подключаемый клиент получит в строке RewriteCond %{REQUEST_URI} #k8SjZc9Dxk/{название базы}/ru_RU/e1cib/users$ кодировку отличную от ru_RU (или вручную установит) — весь список не вывалит?
Проверить мне пока что не на чем…
В заметки. Плюс 🙂
Спасибо, добавим в избранное. Пригодиться
(7) Аналогично, 500 Internal Server Error.
Я правильно понял, что если база называется «MyBase», то содержимое файла должно быть таким:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_URI} #k8SjZc9Dxk/{MyBase}/ru_RU/e1cib/users$
RewriteRule #k8SjZc9Dxk(.*)$ /users.txt [R=301,L]
Пробовал еще так:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_URI} #k8SjZc9Dxk/MyBase/ru_RU/e1cib/users$
RewriteRule #k8SjZc9Dxk(.*)$ /users.txt [R=301,L]
Аналогично, 500
(12) SWz, нужно раскомментировать LoadModule rewrite_module modules/mod_rewrite.so
(13) Большое спасибо! Все получилось.
(13) logdog, до того, как раскоментировал, тоже выдавало ошибку, а после — работает как будто никакого ограничения нет :(((
как будто файла users.txt вообще нет…
единственный вариант — у меня нестандартные порты: 1С — 1545 а http — 8080
может в этом дело, и нужно в .htaccess или где-то еще это указать?
(13)(14)
Еще такой нюанс — браузеры IE и Google реагируют по разному…
ИЕ — показывает всех пользователей
Гугль — ни одного
подозреваю, что это связано с тем, как в этих браузерах пишется адрес после имени базы
ИЕ — /ru/
Гугль — /ru_RU/
а нужного эфекта так и не добился…
Коллеги, помогите, у кого получилось
(12)имя базы нужно брать в фигурные скобки или нет?
(0)в users.txt после имени пользователя «#k8SjZc9DxkM» — это правильно, или причуды CopyPast
(17) wunderland,
Фигурные скобки не нужны, вместо них нужно имя базы.
Без «#k8SjZc9DxkM» (перевода строки) у меня все юзеры были в одну строку.
У меня в IE тоже /ru_RU/, но может для обоих прописать замену?
(18)в одну строку — а с каким разделителем?
за 2 дня я уже, кажется, все перепробовал, даже кодировку файла менял…
список пользователей все равно пустой
(18)Всё! Сдаюсь 🙁 Список пользователей пустой и закончились варианты…
даже про .htaccess и RewriteRule пару статей посмотрел…
Как и понял, строка с RewriteCond отрабатывает, а файл users.txt или не находит, или не читает(права на папку и файл проверил).
Не знаю куда еще смотреть… Может подбросите идею?
Win2003Svr 1Cv8.2.18.109 apache2.2.25×86(0.9.8y)
hell666, а ка настроить для IIS?
список пользователей пустой несмотря на файл users.txt
(15)
(20) Может быть еще кому-то актуально, т.к. в этом обсуждении ответа нет.
Столкнулся с таким же случаем.
Решение — файл users.txt положил не рядом с .htaccess и default.vrd, а в корень Апача, там где лежит index.htm, в моем случае это «c:Apache24htdocs»