为了图个便利,笔者的博客一直使用的cPanel面板的国外主机(具体的那家就不再烦琐了),流量不是太年夜,写个博客足够了,所以一直没有像有些朋友写个博客弄台vps。
当然,出于持久使用cPanel面板主机的缘故吧,有了便宜的推广虚机,仍是会去存眷一下的,不过一般也只是存眷罢了了。
话归原题,本文要说的是使用apache办事器的.htaccess文件实现子目录的绑定与域名绑定。
首先是子目录。写此文初志是为体会决去年在hostable的"脸书"取得的无限空间两年,这个可能知道的人少一些(在此之前有0.99美元三年的,我也买了,到14年过时,此机为两年,到13年),因为空间闲置,并且不像hostable的0.99刀三年的无限主机,什么都是无限,这个空间虽容量、流量无限制,却限定绑定一个域名,最近没事想拿出来折腾一下,发现限制的很不爽,具体这里不再烦琐。
下面直接提出突破体例。
没什么"违纪"行为,都是原始功能,因为限制是一个附加域、一个暂停域和一个子域,相信年夜大都朋友用无限空间都习惯于添加附加于,但附加于每添加一个都相对主域增加一个二级域名,这样你可怜的一个二级域名也会被用失落,所以,这里我们抛弃附加域,使用暂停域,不合的是绑定暂停域只是将域名和主域名绑定到相同的根目录,这样不会产生子目录。下面我们添加子目录。子目录名称填写为"*",路径和主路径一样。这样使用认识前缀的子目录名都可以拜候根目录了,是不是很爽呢?当然,不排除有些cPanel主机不支持泛域名绑定,也就是"*"的绑定(也不在我们讨论范围)。
绑定完成了,就是进入域名办理面板解析了,当然解析也要用"*"的泛解析,可能很多域名商并没有提供泛解析的支持,这里推荐修改ns办事器到dnspod,笔者使用的就是dnspod的免费办事,仿佛去年升级后D年夜已经重新开启了泛域名的支持了。
这样下来,相信很多朋友都知道该怎么操作了。没错,新建或修改根目录的".htaccess"文件。这之间还遇到一点小问题,也与年夜家分享了。就是在cPanel的在线文件办理界面(最近喜欢在线编辑)看不到".htaccess"文件,不知道原因,多是idc为了限制年夜家修改或其他原因吧,总之这个限制难不倒咱们。如果原先有必须使用的内容,就之间ftp客户端下载了修改再覆盖,如果没有实际应用的内容就之间新建后覆盖。
重点就是,内容该怎么写,下面详细的为年夜家阐发了下。总体来讲有四个部分。
# 开启功能
RewriteEngine on
# 你要绑定的二级域名 ,blog.poorren为要指定转向的二级域名
RewriteCond %{HTTP_HOST} ^(blog.)?poorren$
# 把那个子目录指向要绑定的二级域名
# 这里以子目录blog目录为例,两个呈现blog的处所为要指定的二级目录
RewriteCond %{REQUEST_URI} !^/blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /blog/$1
#这里改成要绑定的二级域名和要绑定的子目录
RewriteCond %{HTTP_HOST} ^(blog.)?poorren$ #此处依然是二级域名,和第二部分二级域名对应
RewriteRule ^(/)?$ blog/index.php [L] #此处是二级目录以及下面的主页文件。
这里同等于是绑定的同时指定了首选主页,其实可以不消指定,该句直接写为
RewriteRule ^(/)?$ blog/ [L]
需要注意的是,如果不指定首页,目录名后面必须跟上"/",不然绑定就会呈现问题。
以上几步操作结束,绑定域名就完成了,这样下来,".htaccess"里面指定过的二级域名会按照法则转向,而没有指定的则会直接拜候到主页,在一定水平上也避免了二级域名输错导向404毛病页的情况。
下面就说一下绑定域名,当然,如果你的主机没有域名绑定的限制,上面二级域名的绑定也不会看,更不会看本部分了,这里只针对有需要的朋友,这其实是和gae、sae等不支持域名绑定的开辟者空间绑定域名一个事理。没错,就是apache的反向代办署理。
也不再赘述了,这个操作就是首先把你要绑定不合域名的网站放在某个子目录中,然后绑定任意子目录名称,然后,然后就是找个支持反向代办署理的空间(测试使用了我的博客主机来做反向代办署理),绑定域名,在绑定的目录下新建或修改".htaccess"文件(有些cPanel主机绑定域名后会自动生成.htaccess)。
在文件中添加如下法则
RewriteEngine On
RewriteBase /