配置 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:
apache2.conf:
/etc/apache2/sites-enabled/000-default.conf
/etc/apache2/sites-available/sub1.domain.com.conf
符号链接是由
到
如果我尝试添加文件,我也不明白 .htaccess 在
, 尽管虽然没有考虑
还有一件事我想做的就是 - 这将重定向请求 domain.com/sub1 在 sub1.domain.com 而不是发出错误 403, 但没有文件 .htaccess, 因此,我最小化配置文件的数量。
笔记。 出于测试目的,我有意安装
代替
我究竟做错了什么?
如果我忘了提供必要的信息,请告诉我。
谢谢您的帮助
刷新:
感谢汤姆建议,我理解它是什么。 在我的
我有重定向 HTTP 在 HTTPS. 实际上, Let's Encrypt 创造了
文件 (在证书配置期间,我选择了强制重定向 HTTPS), 在这个文件中是
所以,这个文件重写了我的
文件。
最后,我按照汤姆的答案改变了目录的设置 - 所以它变得更加清晰,谢谢!
它还决定了关于重定向的问题,因为现在我的根文件夹 domain.com
我正在尝试限制访问权限 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
没有找到相关结果
已邀请:
1 个回复
知食
赞同来自:
它会这样做:
这大大简化了对文件的访问的限制。 在您当前的设置中,可能访问有限。
但是,通过通过根域移动可以访问相同的信息:
.