万网的域名解析,不能直接绑定到服务器的子目录。例如,将域名
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>
完成。