配置 Apache2

目前我设置了一个网站 Ubuntu 18.04 从 Apache2.4.

我正在尝试限制访问权限 HTTP (S) 使用某些IP地址到我的子域名。 这些子域名用于开发测试,或者是管理员工具。 (phpMyAdmin 等等。), 因此,我绝对不希望这些子域名公开可用。

我也想 domain.com 它被公开可用。

该网站的当前状态是什么:

domain.com 打开可访问

domain.com 表明 / var / www / html / content

sub1.domain.com 打开可访问

sub1.domain.com 表明 / var / www / html / sub1 内容

sub2.domain.com 打开可访问

sub2.domain.com 表明 / var / www / html / sub2 content

什么是预期的结果:

domain.com 打开可访问

sub1.domain.com 有限多个IP地址

sub2.domain.com 有限多个IP地址

这是我的配置:

参赛作品 DNS:

Name   Type   TTL  Target
A 300 ServerIP
sub1 CNAME 300 domain.com
sub2 CNAME 300 domain.com
www CNAME 300 domain.com

apache2.conf:

[...]
<directory html="" var="" www="">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</directory>
<directory html="" sub1="" var="" www="">
AllowOverride All
Require all denied
</directory>
[...]

/etc/apache2/sites-enabled/000-default.conf

<virtualhost *:80="">
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ServerName domain.com
ServerAlias domain.com

RewriteEngine on
RewriteCond %{SERVER_NAME} =domain.com
RewriteRule ^ [url=https://%]https://%[/url]{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</virtualhost>

/etc/apache2/sites-available/sub1.domain.com.conf

<virtualhost *:80="">
ServerName sub1.domain.com
DocumentRoot /var/www/html/sub1
<directory html="" sub1="" var="" www="">
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all denied
</directory>

RewriteEngine on
RewriteCond %{SERVER_NAME} =sub1.domain.com
RewriteRule ^ [url=https://%]https://%[/url]{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</virtualhost>

符号链接是由

/etc/apache2/sites-available/sub*.domain.com.conf



/etc/apache2/sites-enabled

如果我尝试添加文件,我也不明白 .htaccess 在

/var/www/html/php56

, 尽管虽然没有考虑

AllowOverride All

还有一件事我想做的就是 - 这将重定向请求 domain.com/sub1 在 sub1.domain.com 而不是发出错误 403, 但没有文件 .htaccess, 因此,我最小化配置文件的数量。

笔记。 出于测试目的,我有意安装

Require all denied

代替

Require ip x.x.x.x

我究竟做错了什么?

如果我忘了提供必要的信息,请告诉我。

谢谢您的帮助

刷新:

感谢汤姆建议,我理解它是什么。 在我的

/etc/apache2/sites-available/sub1.domain.com.conf

我有重定向 HTTP 在 HTTPS. 实际上, Let's Encrypt 创造了

/etc/apache2/sites-available/sub1.domain.com-le-ssl.conf

文件 (在证书配置期间,我选择了强制重定向 HTTPS), 在这个文件中是

Require all granted

所以,这个文件重写了我的

sub1.domain.com.conf

文件。

最后,我按照汤姆的答案改变了目录的设置 - 所以它变得更加清晰,谢谢!

它还决定了关于重定向的问题,因为现在我的根文件夹 domain.com

/var/www/domain.com/www
已邀请:

知食

赞同来自:

我不会制作根域的子域投入文件夹的根目录。 代替:

/var/www/html/
- sub1/
- sub2/
- sub3/

它会这样做:

/var/www/domain.com/
- www/ (the root)
- sub1/
- sub2/
- sub3/

这大大简化了对文件的访问的限制。 在您当前的设置中,可能访问有限。

VirtualHost

但是,通过通过根域移动可以访问相同的信息:

[url=http://www.example.com/sub1/data]http://www.example.com/sub1/data[/url]

.

要回复问题请先登录注册