[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

[24 年级] 初学者无意中尝试设置重定向 [Apache] [AWS]

你好。我是 Inu,一名 24 岁的学徒基础设施工程师,拥有文科背景。
这些天我希望能够移动我的头而不是我的眼睛。

这次,我将以一种原始的、物理的、恋物的方式分享我作为一个业余爱好者所学到的重定向设置的结果。

什么是重定向?

首先我们看一下维基百科的解释。

重定向(转发)是一种当您链接到文章时将您重定向到另一个页面的功能。此外,此类页面称为重定向页面。

引用: https://ja.wikipedia.org/wiki/Wikipedia:%E3%83%AA%E3%83%80%E3%82%A4%E3%83%AC% E3%82%AF%E3%83%88#:~:文本=%E3%83%AA%E3%83%80%E3%82%A4%E3%83%AC%E3%82%AF%E3% 83% 88%EF%BC%88%E8%BB%A2%E9%80%81%EF%BC%89%E3%81%A8%E3%81%AF%E3%80%81,%E3%81%99 %E3 %82%8B%E6%A9%9F%E8%83%BD%E3%81%AE%E3%81%93%E3%81%A8%E3%81%A7%E3%81%99%E3%80 %82 (截至2024年10月7日)

正是如此。

您是否曾经在访问旧主页时被自动重定向到新页面?

这正是“重定向”

让我们尝试一下重定向设置

如何设置重定向?

因此,这次我想通过在服务器端设置使用 AWS 的 ALB

验证环境

服务器端的设置方法,我使用了下面的验证环境来设置。

Virtualbox:版本 7.0.20

流浪者:版本2.4.1

点击此处了解如何使用Vagrant启动验证环境↓

使用 Vagrant 构建自己的验证环境

流浪盒:AlmaLinux 9

阿帕奇:版本 2.4.57

第 1 部分:让我们在服务器端进行配置

如果要在服务器端配置,请尝试在虚拟主机的conf文件中添加别名+在虚拟主机的“.htaccess”中添加描述。

① 在虚拟主机的conf文件中添加别名

首先,使用以下命令检查虚拟主机列表。

httpd-S

在执行结果中,可以看到该服务器包含“www.hogehoge.info”和“nova-prod.byd-edu.info”。

■执行结果 VirtualHost 配置: *:80 是 NameVirtualHost 默认服务器 www.hogehoge.info (/etc/httpd/conf.d/hogehoge.conf:1) 端口 80 namevhost www.hogehoge.info (/etc/httpd/conf) .d/hogehoge.conf:1) 端口 80 namevhost nova-prod.byd-edu.info (/etc/httpd/conf.d/nova-prod.byd-edu.info.conf:1) ServerRoot: "/etc/httpd" ~缩写~

现在,让我们使用 less 命令查看“www.hogehoge.info”的conf 文件。

少 /etc/httpd/conf.d/hogehoge.conf

默认设置是相同的,所以我们在这里添加“ServerAlias”。

■执行结果<VirtualHost *:80>服务器名称 www.hogehoge.info DocumentRoot "/var/www/vhosts/hogehoge.info/public_html" DirectoryIndex index.php index.html index.xml<Directory /var/www/vhosts/hogehoge.info/public_html >选项 FollowSymLinks 允许覆盖全部</Directory>CustomLog“/var/log/httpd/hogehoge.info-access_log”组合ErrorLog“/var/log/httpd/hogehoge.info-error_log”</VirtualHost>

使用 vi 命令编辑“www.hogehoge.info”的conf 文件。

vi /etc/httpd/conf.d/hogehoge.conf

进入编辑模式,然后在 ServerName 下添加“ServerAlias”。

<VirtualHost *:80>服务器名称 www.hogehoge.info 服务器别名hogehoge.info ←此处!! DocumentRoot "/var/www/vhosts/hogehoge.info/public_html" DirectoryIndex index.php index.html index.xml<Directory /var/www/vhosts/hogehoge.info/public_html >选项 FollowSymLinks 允许覆盖全部</Directory>CustomLog“/var/log/httpd/hogehoge.info-access_log”组合ErrorLog“/var/log/httpd/hogehoge.info-error_log”</VirtualHost>

添加描述后,使用 esc 退出编辑模式,然后使用 :wq 保存并退出。
使用cat命令确认“ServerAlias”已正确添加后,继续下一步。

② 在虚拟主机的“.htaccess”中描述

接下来,让我们创建“.htaccess”。
首先,移动到“www.hogehoge.info”的文档根目录。

cd /var/www/vhosts/hogehoge.info/public_html

移动后, public_html 内创建“.htaccess”

vi.htaccess

当您打开vi屏幕时,将出现一个全新的编辑屏幕,因此请添加以下信息。

RewriteCond 上的 RewriteEngine %{HTTP_HOST} ^hogehoge\.info [NC] RewriteRule ^(.*)$ http://www.hogehoge.info/$1 [L,R=301]

让我们看一下它们各自的含义。

重写引擎开启 启用 URL 重写
RewriteCond %{HTTP_HOST} ^hogehoge\.info [NC] 定义条件,使表示 URL 的主机名的变量 =hogehoge.info,无论大小写。
RewriteRule ^(.*)$ http://www.hogehoge.info/$1 [L,R=301] 定义一条规则,将满足上述条件的请求重写到www.hogehoge.info,返回状态码301,并重定向。

嗯,这很难。
这篇文章非常容易理解。

URL 规范化(使用 mod_rewrite 重定向)

编辑后,使用以下命令重新加载设置。

systemctl 重新加载 httpd

最后,尝试实际访问“hogehoge.info”,看看您是否被重定向到“www.hogehoge.info”。

不要忘记以管理员权限打开记事本,在“C:\windows\system32\drivers\etc\hosts”文件底部写入并保存本地IP和主机名!
如果不设置的话,即使访问“hogehoge.info”也不会出现任何页面! ! 设置方法是这样的↓

访问后...

■ 访问日志 192.168.33.1 - - [14/Oct/2024:08:22:03 +0000] "GET / HTTP/1.1" 301 233 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/ 537.36(KHTML,如 Gecko)Chrome/129.0.0.0 Safari/537.36"

我们确认,我们实际上在 Chrome 上被重定向到“www.hogehoge.info”,并且我们还在访问日志

第 2 部分:让我们使用 AWS 的 ALB

在AWS环境中,似乎可以在到达服务器之前在负载均衡器端配置重定向设置。

首先,打开 AWS 控制台屏幕并使用以下路径移至设置屏幕。

EC2 > 负载均衡器 > 目标 ALB > 目标端口 > 侦听器规则部分中的“添加规则”

一旦您能够移动,请填写步骤 1 至 5 中的必要项目。

第 1 步:添加规则

这是规则名称和标签设置屏幕。如果两者都是空白的话就没有问题。

步骤② 定义规则条件

从“添加条件”中选择“规则条件类型”。此项用于配置转换源的访问。

主机头 这对应于
“https://hogehoge.info /test.txt ,因此这次输入“hogehoge.info”,即源主机。
小路 这对应于
“https://hogehoge.info /test.txt ,如果来自特定路径的访问是转换源,则必须指定。
HTTP请求方式 可以指定GET、POST等。
源IP 可以指定请求来自哪个IP

步骤 ③ 定义规则动作

接下来,我们将设置过渡目的地。

路由操作 选择“重定向到 URL”
重定向到网址 选择“URI部分”
协议 选择任意协议
,本次选择“HTTP”在本地环境进行验证。
港口 选择任意端口,
由于我们这次选择了“HTTP”作为协议,因此输入“80”。
使用自定义主机、路径、查询... 我会检查一下
主持人 它对应于
“https://hogehoge.info /test.txt ,因此输入 www.hogehoge.info
小路 对应于
“https://hogehoge.info /test.txt ,这次我们要将其应用到“www.hogehoge.info”下的所有路径,因此输入 /*
查询 - 可选 这是查询参数,
“https://beyondjapan.com/?s=test&post_type=pt-blog 部分,
如有需要请输入。
状态码 使用 301 表示永久重定向,使用 302 表示临时维护重定向似乎很常见。在
这种情况下,我们假设它是永久重定向,并会说“301 - 永久移动选择”。

步骤 ④ 设置规则优先级

设置重定向设置的优先级。优先级是一个数值,指定存在多个重定向设置时哪个设置优先。
这些数字按从低到高的优先顺序排列,其中 0 是最优先的数字。

这次,我们只设置一个,所以“1”就可以了。

设置时注意事项:

除上述设置外,如果您想添加从“hogehoge.info”的特定路径(例如hogehoge.info/test.txt等)重定向到另一个页面的设置,请将此设置设置为更高的优先级。

由于条件“hogehoge.info/test.txt”使用通配符包含在现有条件“hogehoge.info/*”中,因此如果优先级顺序不正确,重定向将无法正常工作。

优先级 1“hogehoge.info/test.txt”→“某处”
优先级 2“hogehoge.info/*”→“www.hogehoge.info/*”

让我们就这样吧!

步骤 ⑤ 确认并创建

检查输入的信息是否有问题,如果没有问题,请按“创建”。

如果检查操作,确认重定向成功,就OK了!

再次,不要忘记以管理员权限打开记事本,在“C:\windows\system32\drivers\etc\hosts”文件底部写入并保存本地IP和主机名!
对了,这次我们需要输入ALB的公网IP,所以我也分享一下如何做到这一点。

① 进入用于验证的 ALB 的详细信息屏幕,复制“DNS 名称”。

② 打开 WSL 或 Ubuntu 并使用 dig 命令检查 IP。

挖 hoge-test-alb-12345678.ap-northeast-1.elb.amazonaws.com
■执行结果;; 答案部分:hoge-test-alb-12345678.ap-northeast-1.elb.amazonaws.com。 60 IN A 12.345.678.90 ←这个!

③ 复制答案部分中出现的 IP,将其粘贴到主机文件的底部,然后像以前一样保存。

概括

以上是关于初学者尝试设置重定向的内容。

希望这篇文章能够对初学者有所帮助(合掌)

如果您觉得这篇文章有帮助,请点赞!
5
加载中...
5 票,平均:1.00 / 15
94
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

写这篇文章的人

关于作者