Apache HTTPD 二级域名设置

引言

什么是顶级域名?

顶级域名就是我们常见的网址,最后一个点后面的com,cn,org,edu这些

什么是一级域名?

一级域名指的是zunmx.top,baidu.com,google.com这些

什么是二级域名

比如说我买了一个一级域名,zunmx.top,然后我想通过blog.zunmx.top来访问我的博客,file.zunmx.top来访问我的文件,更加细化的这种,就是二级域名。

以图为例

image.png

域名控制台

如果拥有多个IP地址,那么在域名的控制台设置它,这样是最方便的。
image.png

如果根据不同的二级域名来访问同IP而不通的端口号呢?
这里A记录就解决不了了,在阿里云的云解析DNS中可以设置显性URL和隐性URL,但是数量上还是有限制的,这时候,如果真的有这样的需求,可以考虑用软件来实现。

A记录的设置

A记录中主机名为*,就表示只要一级域名对上号了,那就直接访问这个IP,不管你二级域名是什么

A记录中主机名为@,就表示只要网址上是协议名://一级域名这样的,才能访问,而对你的二级域名,甚至是www.你的域名,都不会解析

A记录中主机名为www,就表示只要是二级域名是www的比如www.zunmx.top,那么就解析到后面设置的IP。

Apache的设置

其实并没有想象中的那么复杂,比如说80端口哈,咱们www为导航页,blog为博客,file为文件
在vhost或者httpd.conf中进行如下设置、
注意serverName和 DocumentRoot Directory 这三个部分

<VirtualHost *:80>
    DocumentRoot "/var/web/www/"
    ServerName www.zunmx.top
    ServerAlias 
    FcgidInitialEnv PHPRC "/usr/local/php/php7.4.3nts"
    AddHandler fcgid-script .php
    FcgidWrapper "/usr/lib/php-cgi" .php
  <Directory "/var/web/www/">
      Options FollowSymLinks ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
      Require all granted
      DirectoryIndex index.php index.html error/index.html
  </Directory>
</VirtualHost>


<VirtualHost *:80>
    DocumentRoot "/var/web/blog/"
    ServerName blog.zunmx.top
    ServerAlias 
    FcgidInitialEnv PHPRC "/usr/local/php/php7.4.3nts"
    AddHandler fcgid-script .php
    FcgidWrapper "/usr/lib/php-cgi" .php
  <Directory "/var/web/blog/">
      Options FollowSymLinks ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
      Require all granted
      DirectoryIndex index.php index.html error/index.html
  </Directory>
</VirtualHost>

这是好后重启apache服务器即可。

结果

image.png
image.png

原则上也可以通过.htaccess做重定向,或者通过index.php(不一定是php哦),通过代码,分析二级域名,做目录的重定向。

评论 0

还没有评论,来说点什么吧。

提交后需要审核才会公开。