关于子域和重新定向的使用总结

在创建子域时文件根的选择很重要。如果只是简单的子域有各自的目录可以不要关心这个,但如果后续需要做重新定向操作那么这里选择的文件根就很关键,因为这个重定向是通过该文件根下的.htaccess文件来实现的,所以可能会存在冲突、忘记改哪里等系列问题。

这里直接以举例的方式进行说明。

实例一:将taobao.lordong.net转向shop62429159.taobao.com的做法
1. 在域名的DNS设置里添加一项taobao.lordong.net A指向,IP跟lordong.net一样。
2. 新建一个子域taobao.lordong.net,文件根使用public_html而不是自动生成的public_html/taobao,目的是使用根目录下的.htaccess文件来实现转向。
3. 在public_html的.htaccess添加如下几行:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^taobao\.lordong\.net$
RewriteRule ^(.*) http://shop62429159\.taobao\.com/$1 [R=301,L]

简单说明:当在浏览器中访问http://taobao.lordong.net/xxx时自动转向成http://shop62429159.taobao.com/xxx。将nt.lordong.net转向成lordong.net/nt的方法也是一样的。

实例二:将lordong.net/tt转向成tt.lordong.net的做法
1. 为了让tt.lordong.net能访问,在域名的DNS设置里添加一项tt.lordong.net A指向,IP跟lordong.net一样。
2. 新建一个子域tt.lordong.net,文件根使用自动生成的public_html/tt,即使用默认的子目录。
3. 在public_html的.htaccess添加如下几行:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^lordong\.net$
RewriteRule ^tt/? http://tt\.lordong\.net/ [R=301,L]

简单说明: 当在浏览器中访问http://lordong.me/tt/xxx时自动转向成http://tt.lordong.net/,忽略后面的“/xxx”参数。

关于多句RewriteRule的写法是可行的,只是在最后一句结尾加上“L”关键写,比如:

RewriteCond %{HTTP_HOST} ^lordong\.net$
RewriteRule ^blog/?(.*) http://lordong\.net/wp/$1 [R=301]
RewriteRule ^tt/? http://tt\.lordong\.net/ [R=301,L]

Tags: ,

Leave a Reply


提醒: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。请务必注意user必须和评论者名相匹配(大小写一致)。