我有一台服务器,可以通过域名(使用SSL安全)或服务器IP地址在浏览器中访问。
我想禁用使用服务器IP地址访问:
http://123.45.678.901/ 和 https://123.45.678.901/ 如何实现这个目标?
我想禁用使用服务器IP地址访问:
http://123.45.678.901/ 和 https://123.45.678.901/ 如何实现这个目标?
我在这里找到了完整的解决方案,需要通过 htaccess
文件和 2 条规则:
规则 1:将所有请求重定向到安全的 HTTPS 访问(包括 IP 请求 http://123.45.678.901)
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://domain.com/$1 [L,R=301,QSA]
规则 2:如果域名或子域名不完全是 domain.com,则重定向到裸域名(必须捕获例如 https://123.45.678.901/any-page)
使用 将所有通配符子域名重定向到根域名
RewriteCond %{HTTP_HOST} !^domain\.com$ [NC]
RewriteRule (.*) https://domain.com/$1 [L,R=302,QSA]
http://123.45.678.901/ > now redirect to https://domain.com/
https://123.45.678.901/ > now redirect to https://domain.com/
http://123.45.678.901/any-page > 404 > https://domain.com/index.php?p=any-page
https://123.45.678.901/any-page > 404 > https://domain.com/index.php?p=any-page
如果您想让用户通过域名访问您的网站(服务器),而禁用相应IP地址的访问以禁用通过IP地址访问phpmyadmin,则无法实现您想要的目标,也不是一个好的方法。
粗略地说,域名是IP地址的人类可读和易记形式,当我们在浏览器中输入域名(例如http://google.com)时,DNS(域名服务)服务器将域名转换为相应的IP地址,并且浏览器尝试连接由DNS给出的IP地址。最终,通过域名和IP地址进行内部连接的方式是相同的。
为了防止其他用户和攻击者访问phpmyadmin,配置访问控制是正确的方法。请尝试:
如果您正确配置了上述几点,即使攻击者知道phpmyadmin的URL,他们也无法访问您的数据库。
/ etc / apache / conf-available /
文件夹中创建一个noip.conf文件,并添加以下内容:<If "%{HTTP_HOST} =~ /12\.34\.56\.78/">
RewriteEngine on
RewriteRule ^ http://my.domain.com [L,R=301]
</If>
启用配置并重新启动Apache:
a2enconf noip
apachectl restart
您还应检查服务器上是否有其他应用程序在监听备选端口,因为有人可能会输入12.34.56.78:999。