Исключить домашний URL в аутентификации htaccess - PullRequest
0 голосов
/ 10 марта 2019

У меня есть веб-сайт, на котором я хочу разрешить всем просматривать http://localhost:8080/, но защищать паролем все остальные URL, например, http://localhost:8080/home, http://localhost:8080/about, http://localhost:8080/blog-pretty-url, и т. Д..

Пока это мой код .htaccess, но я мог защитить паролем только домашнюю страницу и страницы и исключить статические файлы, чтобы домашняя страница работала нормально.

SetEnvIf Request_URI (\/(home|about-us)).*(?!(.*(css|js|png|svg|ico|jpg))) auth=1

AuthName "Please login"
AuthType Basic
AuthUserFile "/var/www/html/.htpasswd"

# first, allow everybody
Order Allow,Deny
Satisfy any
Allow from all
Require valid-user
# then, deny only if required
Deny from env=auth

Я тоже пробовал это регулярное выражение, но оно не работает: (\:\/\/).*(\/\w)(?!(.*(css|js|png|svg|ico|jpg)))

Любая помощь в написании регулярного выражения, чтобы он защищал все URL-адреса, кроме '/', и исключал статические файлы изчерный список будет высоко оценен.

1 Ответ

1 голос
/ 12 марта 2019

sadmansh,

Вы на правильном пути, но смотрите в неправильном направлении.На самом деле это гораздо проще, чем кажется.Все, что вам нужно сделать, это защитить паролем все, а затем добавить правило, позволяющее всем посещать определенную страницу, которая в вашем случае имеет вид "http://localhost:8080/".

Во-первых, защитить паролем каждый файл / каталог.

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

Замените "index.html" на файл, которым вы хотите поделиться.

<Files "/index.html">
  Allow from all
  Satisfy any
</Files>

Пожалуйста, дайте мне знать, если это поможет! Иметь хороший.

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