问题背景
在 xampp 环境中,我们经常需要让用户访问 服务器 ip 时自动跳转到 绑定的域名(如 https://example.com),同时确保 https 安全访问。本教程将详细介绍如何通过 apache 虚拟主机配置实现这一功能,并解决常见问题。
解决方案
方法 1:修改 httpd-vhosts.conf(推荐)
步骤 1:编辑虚拟主机配置文件
路径:
windows: c:\xxx\apache\conf\extra\httpd-vhosts.conf linux: /opt/lampp/etc/extra/httpd-vhosts.conf
在文件末尾添加以下配置(替换 123.123.123.123 为你的服务器 ip,example.cn 为你的域名):
# 强制 ip 跳转到域名(http)
<virtualhost 123.123.123.123:80>
servername 123.123.123.123
redirect permanent / https://example.cn/
</virtualhost>
# 强制 ip 跳转到域名(https)
<virtualhost 123.123.123.123:443>
servername 123.123.123.123
sslengine on
sslcertificatefile "conf/ssl/example.cn.crt"
sslcertificatekeyfile "conf/ssl/example.cn.key"
redirect permanent / https://example.cn/
</virtualhost>
# 默认域名配置(http → https)
<virtualhost *:80>
servername example.cn
serveralias www.example.cn
redirect permanent / https://example.cn/
</virtualhost>
# 默认域名配置(https)
<virtualhost *:443>
servername example.cn
serveralias www.example.cn
documentroot "/opt/lampp/htdocs/example"
sslengine on
sslcertificatefile "conf/ssl/example.cn.crt"
sslcertificatekeyfile "conf/ssl/example.cn.key"
<directory "/opt/lampp/htdocs/gsglbwg">
options indexes followsymlinks
directoryindex index.html index.php
allowoverride all
require all granted
</directory>
</virtualhost>步骤 2:确保关键模块已启用
在 httpd.conf 中取消以下注释(若未启用):
loadmodule rewrite_module modules/mod_rewrite.so loadmodule alias_module modules/mod_alias.so loadmodule ssl_module modules/mod_ssl.so
步骤 3:重启 apache
sudo /opt/lampp/lampp restart # linux # 或在 windows 使用 xampp 控制面板重启
方法 2:使用 .htaccess 文件
如果无法修改虚拟主机配置,可在网站根目录(如 /htdocs/example)创建 .htaccess 文件:
rewriteengine on
rewritecond %{http_host} ^123\.123\.123\.123$
rewriterule ^(.*)$ https://example.cn/$1 [l,r=301]到此这篇关于apache服务器ip 自动跳转域名教程的文章就介绍到这了,更多相关apache服务器ip自动跳转域名内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论