通過偽靜態規則實現子目錄綁定:apache+.htaccess或IIS+ISAPI_REWRITE+httpd.ini
Apache HTTP Server一般安裝在類Linux服務器上,默認支持URL重寫,一般虛擬主機用戶將.htaccess文件放網站根目錄就可以實現偽靜態了,使用下面的偽靜態規則就可以實現子目錄綁定。
RewriteEngine on
# 把 ip.caoger.net 改為你要綁定的域名,把 IPdir 改為要綁定的目錄
RewriteCond %{HTTP_HOST} ^(www.)?ip.caoger.net$
RewriteCond %{REQUEST_URI} !^/IPdir/
# 不要改以下兩行.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 把 IPdir 改為要綁定的目錄.
RewriteRule ^(.*)$ /IPdir/$1
# 把ip.caoger.net 改為你要綁定的域名
# 把 IPdir 改為要綁定的目錄.
..
RewriteCond %{HTTP_HOST} ^(www.)?ip.caoger.net$
RewriteRule ^(/)?$ IPdir/ [L]
增加子目錄綁定時,將上面代碼除了第一行之外全部復制一遍并做相應修改后,粘貼到上面的規則后面即可。
如果根目錄也綁定其它域名的話,可以通過子目錄訪問子站,就會導致子站文件多出個訪問URL,建議不要在根目錄綁定其它域名;當然,如果綁定子目錄都是一級目錄subDomain下的子目錄,可以通過robots.txt禁止收錄subDomain目錄,這樣就不用擔心上面的問題了。可以使用DisallowDirdh88eghsjkk8834取代前面的subDomain,然后在robots.txt增加如下一行即可禁止搜索引擎在收錄主站時收錄該子目錄(不過子網站之間似乎有點亂)。
Disallow: /Disallow
對于IIS+ISAPI_REWRITE+httpd.ini的情況,如下內容的httpd.ini可以讓子網站根目錄(僅http://ip.caoger.net/和對應的www子域名這2個網址)重寫到子目錄。
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# 把 yourdomain.com 改為你要綁定的域名
RewriteCond Host: ^(www/.)?ip/.caoger/.net$
RewriteRule ^(/)$ /IPdir/ [L]
增加如下規則可以讓以http://ip.caoger.net/about/(這里的域名也可能是www子域名)開頭的所有url實現重寫,實際地址是將ip.caoger.net/about/為ip.caoger.net/IPdir/about/。
RewriteRule ^/about/(.*)$ /IPdir/about/$1 [L]
需要重寫多個(或多類)目錄或文件,就要多增加幾條規則。增加多個子目錄,也是需要些重復勞動。顯然,IIS+ISAPI_REWRITE+httpd.ini下的規則寫起來比apache+.htaccess下的麻煩多了。
新聞熱點
疑難解答
圖片精選