Iva*_*van 17 301-redirect apache-2.2
我想限制对我网站的直接 IP 访问。我找到了几个涉及 .htaccess 的解决方案,但都没有工作。我还通过 apache 虚拟主机配置找到了一种解决方案,该解决方案在我通过 CPanel 安装 SSL 证书之前一直运行良好。我完全不知道 httpd.conf 文件中发生了什么变化,但现在即使我卸载 SSL 证书,重定向设置也不起作用。
这是我当前的虚拟主机设置:
NameVirtualHost 192.168.1.1:80 NameVirtualHost *
<VirtualHost 192.168.1.1:80>
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /home/rotate/public_html
ServerAdmin me@mysite.com
UseCanonicalName Off
## User rotate # Needed for Cpanel::ApacheConf
UserDir disabled
UserDir enabled rotate
ScriptAlias /cgi-bin/ /home/rotate/public_html/cgi-bin/
</VirtualHost>
<VirtualHost 192.168.1.1:80>
ServerName 192.168.1.1
Redirect 403 /
ErrorDocument 403 "Sorry, direct IP access not allowed."
DocumentRoot /usr/local/apache/htdocs
ServerAdmin me@mysite.com
UseCanonicalName Off
UserDir disabled
</VirtualHost>
<VirtualHost *>
ServerName server.mysite.com
DocumentRoot /usr/local/apache/htdocs
ServerAdmin me@mysite.com
UserDir disabled
</VirtualHost>
NameVirtualHost 192.168.1.1:443
<VirtualHost 192.168.1.1:443>
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /home/rotate/public_html
ServerAdmin me@mysite.com
UseCanonicalName Off
UserDir disabled
UserDir enabled rotate
ScriptAlias /cgi-bin/ /home/rotate/public_html/cgi-bin/
SSLEngine on
#SSL stuff here
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
IP 和名称被替换为通用的。自安装 SSL 证书以来,“重定向 403 /”部分不起作用。如果有人能阐明我在这里做错了什么,我将不胜感激。谢谢。
Iva*_*van 14
瞧,修复:
<VirtualHost mysite.com:80>
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /home/rotate/public_html
ServerAdmin me@mysite.com
UseCanonicalName Off
</VirtualHost>
NameVirtualHost mysite.com:80
<VirtualHost 192.168.1.1:80>
ServerName 192.168.1.1
Redirect 403 /
ErrorDocument 403 "Sorry, direct IP access not allowed."
DocumentRoot /usr/local/apache/htdocs
ServerAdmin me@mysite.com
UseCanonicalName Off
UserDir disabled
</VirtualHost>
<VirtualHost *>
ServerName server.mysite.com
DocumentRoot /usr/local/apache/htdocs
ServerAdmin me@mysite.com
UserDir disabled
</VirtualHost>
NameVirtualHost mysite.com:443
<VirtualHost mysite.com:443>
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /home/rotate/public_html
ServerAdmin me@mysite.com
UseCanonicalName Off
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
解决方案是简单地将所有虚拟主机设置的 IP 替换为域名,但需要重定向/限制直接 IP 访问的设置除外。
小智 9
答案可能要简单得多。
只需将其复制到 httpd.conf 的底部(通常位于 /etc/httpd/conf)
<VirtualHost *:80>
ServerName localhost
Redirect 403 /
UseCanonicalName Off
UserDir disabled
</VirtualHost>
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/html
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
那么只有当访问者通过 www.example.com 访问时,他才能访问服务器。
归档时间: |
|
查看次数: |
66030 次 |
最近记录: |