我有这么一个需求
主站example.com已经配置OK,并且正常访问,之前有一些页面放在主站下面的id目录,由于主站文件夹下面有点乱,现在准备开启二级域名id.example.com,使用目录idcard,DNS已经指向好,但是之前的example.com/id已经对外公布,所以就是想别人在访问example.com/id转向到id.example.com 并且使用的idcard目录的文件
nginx主机 不知道conf怎么写
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在Nginx中,你可以通过配置重定向和代理_pass_来实现你的需求。下面是一个示例配置,展示了如何将访问example.com/id
的请求重定向到id.example.com
,同时确保内容实际上是从idcard
目录提供服务的。
首先,确保你的Nginx已经配置了两个server块,一个用于处理主站example.com
的请求,另一个用于处理二级域名id.example.com
。以下是如何配置这两个部分的示例:
example.com
的重定向在处理example.com
的server块中,添加如下规则来实现从/id
到id.example.com
的重定向:
server {
listen 80;
server_name example.com;
location /id {
return 301 https://id.example.com$request_uri;
}
# 其他example.com的location配置...
}
这里使用了301
永久重定向,这有助于搜索引擎和用户更新他们的书签。如果你希望是临时重定向,可以使用302
状态码。
id.example.com
接下来,在处理id.example.com
的server块中,设置其内容来源为idcard
目录,并且允许直接访问这个目录下的文件:
server {
listen 80;
server_name id.example.com;
root /var/www/html/idcard; # 假设idcard目录位于此路径,请根据实际情况调整
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
# 如果需要其他配置,比如SSL证书配置等,可以在这里添加
}
请确保替换/var/www/html/idcard
为你实际存放idcard
目录的路径。
listen
指令并配置SSL证书。id.example.com
指向你的服务器IP地址。完成上述配置后,重启Nginx服务以应用更改:
sudo service nginx restart
或者,如果你使用的是systemd管理的服务:
sudo systemctl restart nginx
这样配置后,当用户访问example.com/id
时,他们会被重定向到id.example.com
,并且看到的内容实际上是来自idcard
目录的。