.htaccess 二级域名绑定子目录

万网的域名解析,不能直接绑定到服务器的子目录。例如,将域名

www.mywebsite.com

解析到某服务器的根目录。如果希望将一个子域名

bbs.mywebsite.com

解析到子目录 /bbs/,应该如何做呢?

环境

操作系统:Ubuntu
服务器软件:Apache2

开启 rewrite

sudo a2enmod rewrite

检查 apache2.conf

打开 /etc/apache2/apache2.conf

sudo vi /etc/apache2/apache2.conf

找到

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

将其中的 AllowOverride None 改为 All

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

保存,重启 apache2

sudo service apache2 restart

设置 .htaccess

进入目录 /var/www,新建并打开 .htaccess

cd /var/www
sudo vi .htaccess

在 .htaccess 里输入内容

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteBase /

DirectoryIndex index.html index.php

RewriteCond %{HTTP_HOST} ^bbs.mywebsite.com$
RewriteCond %{REQUEST_URI} !^/bbs/
RewriteRule ^(.*)$ bbs/$1

</IfModule>

如此,即可将 bbs.mywebsite.com 重定向到子目录 bbs 下。默认会重定向成

www.mywebsite.com/bbs/index.html

如果希望重定向到 index.php,则需要再进入 bbs 目录,创建一个 .htaccess。

cd bbs
sudo vi .htaccess

在 bbs 目录下的 .htaccess 里键入

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteBase /bbs/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /bbs/index.php [L]

</IfModule>

完成。

原文地址:https://www.cnblogs.com/geofflui/p/4943471.html