对于不支持子域名解析但是支持 .htaccess 的主机来说,这个功能就非常有用了
假设有主域名 ppios.com,子域名 yspx.ppios.com 和 ask.ppios.com,设置结果为访问 repo.ppios.com 时自动解析到 www.ppios.com/repo/ 文件夹中
下面是详细设置:
在根目录下的 .htaccess
RewriteEngine On
RewriteCond %{HTTP_HOST} ^((www|yspx).)?ppios.com$
RewriteCond %{REQUEST_URI} !^/yspx/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /yspx/$1
RewriteCond %{HTTP_HOST} ^((www|yspx).)?ppios.com$
RewriteRule ^(/)?$ yspx/index.html [L]RewriteCond %{HTTP_HOST} ^((www|repo).)?ppios.com$
RewriteCond %{REQUEST_URI} !^/repo/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /repo/$1
RewriteCond %{HTTP_HOST} ^((www|repo).)?ppios.com$
RewriteRule ^(/)?$ repo/ [L]
注:标红区域请自行替换成自己的域名(若不是.com则需同时替换.com部分),绿色区域请自行替换为自己的子域名(子目录名),蓝色区域请自行设置子目录对应的首页类型,比如 repo 文件夹下主页是 index.html,则设置为 repo/index.html,也可不设置,只写 repo/
在对应子目录下的 .htaccess
RewriteEngine On RewriteBase /repo RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /repo/ [L]
注:绿色部分自行替换为对应的子目录名,要在每一个子目录下都放置对应的 .htaccess 文件
这样就完成了通过设置 .htaccess 来将子域名解析到子目录的工作