Apache服务器IP 自动跳转域名教程

发布于:2025-08-30 ⋅ 阅读:(17) ⋅ 点赞:(0)

​​问题背景​​

在 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]

网站公告

今日签到

点亮在社区的每一天
去签到