Как я должен разделить общедоступные и частные страницы на своем веб-сервере?

Существует большое разнообразие способов, которыми это может быть выполнено, но наиболее распространенные два:

  1. Процессы, запущенные как корень, могут изменить свой идентификатор пользователя на любого другого пользователя в системе посредством их собственного внутреннего программирования; большинство демонов включая MySQL управляет этим путем.
  2. Процессы могут быть запущены с sudo -u _mysql mysqld или это грубо эквивалентно.
3
задан 10 August 2012 в 09:55
2 ответа

Хорошо, поэтому вы хотите ограничить доступ к частным проектам по IP-адресу, и у вас есть следующая структура каталогов:

  • DocumentRoot - / var / www
    • публичные проекты находятся в / var / www / public
    • частные проекты находятся в / var / www / private

Итак, в вашем файле конфигурации Apache ( httpd.conf ) добавьте директиву , например:

<Directory /var/www/private>
   Order deny,allow
   Deny from all
   Allow from 10.0.0.0/24
</Directory>

, и все, что находится в этом каталоге, будет доступно только в том случае, если вы заходите из разрешенных сетей. (Есть и другие способы указать Разрешить хосты ).


Мой домен - www.example.com .
Я хочу получить доступ к / var / www / html / public / publicproj1 как www.example.com/publicproj1 и / var / www / html / private / privateproj1 как www.example.com/privateproj1

Это немного сложнее. Вам потребуются правила перезаписи или директива Alias ​​ для каждого проекта. Как вы отметили, это не идеальная ситуация, поэтому давайте рассмотрим некоторые другие варианты.

Настроенный, как я описал выше, с имеющейся у вас структурой каталогов, вы сможете получить доступ к каталогам как www.example.com/ public / proj1 и www.example.com/private/proj1 прямо из коробки.
If that works for you you're done.

If that's not a good enough solution, consider moving your public projects so they're directly under /var/www/html -- your public projects would then be accessible as www.example.com/publicproj1, and your private projects would be accessible with the /private/ bit added in. (Presumably you don't care so much about a little ugly in the URL of a "private" project, and this avoids the need to do any Aliasing for your public stuff).


Regarding the starting page, you can show content of startingpage folder if www.example.com is requested with the following rules:

RewriteEngine On

# Don't apply to URLs that go to existing files or folders.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Only apply to URLs that aren't already under folder.
RewriteCond %{REQUEST_URI} !^/startingpage/

RewriteRule ^(.*)$  /startingpage/$1
3
ответ дан 3 December 2019 в 07:07

Почему вы не можете ограничить эти папки с помощью метода защиты паролем .htaccess?

http://viralpatel.net/blogs/password-protect-your-webpages-using-htaccess/

-1
ответ дан 3 December 2019 в 07:07

Теги

Похожие вопросы