happyxp 发表于 2019-6-12 13:12:12

Apache环境下.htaccess伪静态实现绑定子目录绑定二级域名多个一级域名

网站建设过程中按照需要我们可能需要子目录绑定二级域名或者一个虚拟空间内绑定多个域名,大多数虚拟空间不提供绑定二级域名服务,那么我们可以通过伪静态实现类似的功能。需要注意的是我们的子目录需要独立的一个站点,如果是主站的一个分目录的话需要调整图片和调用文件的路径。


传送门:
IIS环境配置
Nginx环境配置
Apache环境下,包括windows系统和linux系统中的Apache环境中使用。
首选要开启系统的伪静态设置,Apache开启伪静态传送门
一般环境配置好之后会自动开启。Apache环境中伪静态文件为网站根目录下的.htaccess,如果没有的话需要手动创建,首先,打开系统的显示文件扩展名,根据需要将以下代码复制到txt记事本中,替换成自己的网址,然后另存为.htacess文件,放到网站根目录即可。


下面是以 news.xp6.org 绑定到子目录news为例的.htaccess代码.
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  # 绑定<span style="font-family: &quot;Microsoft Yahei&quot;; background-color: rgb(255, 255, 255);">news.xp6.org</span> 到子目录news
  RewriteCond %{HTTP_HOST} ^news\.xp6\.org$
  RewriteCond %{REQUEST_URI} !^/news/
  RewriteRule ^(.*)$ news/$1?Rewrite
  #可以绑定多个 只需重复上三行代码并更改一下域名、目录名 就好了
</IfModule>如果你以完成上面的步骤
  你的子域名应该可以访问了 但你会发现在浏览器上访问 主域名+绑定的域名目录 也可以访问,可这并不是我们想要的 接下来我们完成最后一步;在每一个绑定的目录中 如news目录中 也增加一个 .htaccess 文件
  .htaccess代码如下:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  
  #只许绑定的域名访问
  RewriteCond %{HTTP_HOST} !^news\.xp6\.org$
  RewriteRule (.*) http://<span style="font-family: &quot;Microsoft Yahei&quot;; background-color: rgb(255, 255, 255);">news.xp6.org</span>/$1
  
  #对绑定目录下与 同名的目录的处理
  RewriteCond %{REQUEST_URI} ^\/news\/
  RewriteCond %{QUERY_STRING} !^(.*)?Rewrite
  RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite
</IfModule>

页: [1]
查看完整版本: Apache环境下.htaccess伪静态实现绑定子目录绑定二级域名多个一级域名