WordPress MultiSite - блокирует доступ к подпапкам на сервере для всех, кроме одного сайта - PullRequest
1 голос
/ 24 июня 2011

У установки WordPress есть несколько сайтов / доменов. Отдельно от установки WordPress находится HTML-сайт в подпапке на сервере. Я хочу, чтобы только один из доменов имел доступ к этой папке, другие домены не должны видеть эту папку. Мне также нужно заблокировать определенные файлы, не в той же папке, а рядом с ней (все в public_html).

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

SetEnvIf Referer mydomain\.com localreferer
<Location /myfolder>
    Order deny,allow
    Deny from all
    Allow from env=localreferer
</Location> 
<FilesMatch myfile.php>
    Order deny,allow
    Deny from all
    Allow from env=localreferer
</FilesMatch>

1 Ответ

0 голосов
/ 25 июня 2011

Вот решение, которое включает mod_rewrite (поместите его в файл .htaccess в корневую папку).Он будет запрещать (код 403) доступ к любому ресурсу, который находится myfolder, если только он не запрошен через mydomain.com (например, http://mydomain.com/myfolder).

RewriteCond %{HTTP_HOST} !=mydomain.com
RewriteRule ^myfolder(/|/.*)?$ - [NC,F]

Правило ниже будет делать то же самое, но для /myfile.php file.

RewriteCond %{HTTP_HOST} !=mydomain.com
RewriteRule ^myfile\.php$ - [NC,F]

Что касается вашего первоначального подхода - попробуйте это: <FilesMatch "myfile\.php">. FilesMatch работает с регулярным выражением и поэтому может потребоваться объявить таким образом.

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