Занести папки в черный список в корневом каталоге сайта с помощью .htaccess.Apache

Ответить
Anonymous
 Занести папки в черный список в корневом каталоге сайта с помощью .htaccess.

Сообщение Anonymous »

Контекст
У меня на сервере есть несколько веб-сайтов, все из которых являются дополнительными доменами, и каждый веб-сайт соответствует отдельной папке внутри папки public_html. . Допустим, у меня есть два сайта:
  • sports.com (указывает на папку «спорт»)
  • quizzes.com (указывает на папку «викторины»)
Когда я захожу на сайт Sports.com, содержимое папки «спорт» загружается правильно. Однако когда я ввожу «sports.com/quizzes» в качестве URL-адреса, содержимое веб-сайта quizzes.com отображается, поскольку я могу получить доступ к папке этого сайта.
По сути, я Я могу получить доступ к каждому веб-сайту, который у меня есть, через URL-адрес каждого отдельного сайта.
Я не был уверен, как решить эту проблему, но в конце концов я остановился на использовании .htaccess для внесения в черный список вручную. каждое имя папки в public_html, к которому я не хочу, чтобы у пользователя был доступ (это все, что находится за пределами корневой папки сайта — например, папка «спорт», если я на сайте Sports.com).
Попытка решения
Я нашел этот код, который должен был запретить пользователям доступ к папке «викторины», если они находятся на сайте Sports.com. :

Код: Выделить всё

RewriteEngine On

RewriteCond %{HTTP_HOST} sports\.com [NC]
RewriteRule ^quizzes/(.*)$ - [F,L]
Я тоже нашел его в таком формате:

Код: Выделить всё

RewriteEngine On

RewriteCond %{HTTP_HOST} ^sports\.com$ [NC]
RewriteCond %{REQUEST_URI} ^/quizzes/
RewriteRule .* - [F,L]
Эти решения должны проверять, является ли хостом Sports.com, и если да, то проверять остальную часть URL-адреса. Если он содержит «викторины», он блокирует доступ пользователя к этой папке.
Ни одно из этих решений не помогло. Я попробовал добавить его в корень public_html, а также в индивидуальную корневую папку каждого сайта («спорт» и «викторины»). Поведение это совершенно не изменило. Я понятия не имею, почему это не работает.
Примечание: этот код является частью моего более крупного блока кода .htaccess (следующий код представляет собой код public_html .htaccess):

Код: Выделить всё

RewriteEngine on

#redirect sports.com requests to sports folder
RewriteCond %{HTTP_HOST} ^(www.)?sports.com$
RewriteCond %{REQUEST_URI} !^/sports/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /sports/$1
RewriteCond %{HTTP_HOST} ^(www.)?sports.com$
RewriteRule ^(/)?$ sports/index.php [L]

#code to blacklist "quizzes" directory
RewriteCond %{HTTP_HOST} ^sports\.com$ [NC]
RewriteCond %{REQUEST_URI} ^/quizzes/
RewriteRule .* - [F,L]

#disallows files from being listed if there is no index file in directory
IndexIgnore *
Вопросы
Есть идеи, почему это не работает или какие еще способы можно попытаться найти решение этой проблемы?
Кроме того, является ли проблемой то, что пользователь может таким образом перемещаться по моим папкам, если единственные папки, к которым он может получить доступ, — это папки других общедоступных веб-сайтов? Папки, доступ к которым не должен быть доступен, уже содержат сообщение об ошибке «Запрещен доступ».
Проверено иное
Я пытался выяснить, включен ли mod_rewrite, но не смог понять, как это сделать. Я использовал sudo a2enmod rewrite в терминале через SSH, но он сказал, что команда не существует. Я повторил phpinfo(), но там ничего не сказано о mod_rewrite. Я также попробовал print_r(apache_get_modules()); и получил ошибку 500. Кроме того, я уже могу перезаписывать URL-адреса других страниц сайта, поэтому предполагаю, что это означает, что он включен.
Я также пробовал очистить кеш и зайти на сайт в режиме инкогнито. режим, который не имел никакого значения.

Подробнее здесь: https://stackoverflow.com/questions/786 ... g-htaccess
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Apache»