Назад | Перейти на главную страницу

активировать htaccess только по определенному URI

У меня есть веб-сервер apache, работающий в системе ubuntu. Чтобы избежать доступа неавторизованных пользователей, у меня есть активный .htaccess:

AuthType Basic
AuthName "own area"
AuthUserFile /path/to/.htpasswd
require user username

это .htacces отлично работает, получая доступ ко всем файлам в корне документа, например index.php. В этом случае требуется аутентификация пользователя. Но теперь я ищу способ отключить эту аутентификацию пользователя, если был вызван конкретный uri, например: index.php?s=abc В этом случае и только в этом случае приложение должно быть доступно без аутентификации.

Есть ли способ осознать это? Я не уверен, как начать поиск в Интернете по этому конкретному вопросу?

Это RewriteEngine ключ?

Конфигурация vhost сервера имеет активное правило перезаписи со следующей конфигурацией:

  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI}  !^/index.php
  RewriteRule ^/([\w]+)$ /index.php?s=$1   [L]

Спасибо.

В дополнение к конфигурации аутентификации добавьте в .htaccess следующее:

# Set environment variable "allow" only for URL /index.php?s=abc
RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} ^s=abc$
RewriteRule ^index.php$ - [E=allow]

# Allow access when allow is set
Order deny,allow
Deny from all
Allow from env=allow

# Grant access by Allow OR user authentication
Satisfy any