导航:首页 > IDC知识 > rewrite实现二级域名

rewrite实现二级域名

发布时间:2020-10-29 23:26:26

1、如何配置Apache的Rewrite规则实现二级域名的转化

^RewriteEngine on
rewritecond %{http_host} ^abc.ideasbulb.com [nc]
  rewriterule ^(.*).ideasbulb.com(.*)$ ideasbulb.com/$1$2 [r=301,nc]

2、如何自动化实现二级域名访问,类似博客

解析无限个二级域名的方法有三种:
无论使用哪种,都必须使用域名泛解析。将*.test.com(此处我们test.com作例子)解析到你指定的服务器上。
如:
*.test.com 222.222.222.222

注:
作域名泛解析前,必须确认域名服务商对你提供域名泛解析服务。否则,后面的工作都是徒劳的。

方法一:使用Windows自带DNS解析。
步骤:
1,添加好test.com,如下图

2,在test下添加一个名称为 * 的域 (右键,添加域),添加完如下图

3,在*的域下,添加一个主机(右键,新建主机,主机名称为空,IP则填写为您要将域名泛解析的对应IP),添加完如下图。

解析完成,测试一下,Ping test.test.com 是不是解析到222.222.222.222

方法二:使用程序进行判断调整。
步骤:
1,iis服务的主机头留空,新建Default.asp文件,并把新建文件的执行优先级设定为最高(IIS设置属性中的文档,将Default.asp移到最上面)。
Default.asp文件代码:
<%
Dim iURL
iURL = Split(Request.ServerVariables("SERVER_NAME"),".")
If Lcase(iURL(0))="www" Then
'此处为网站首页地址,请自行选择
Response.Redirect("index.asp")
Else
'如二级域名所调转地址,请自行更改此处地址
Response.Write( "<frameset><frame src=""**.asp?"&iURL(0)&".index.html""></frameset>")
End If
%>

方法三:使用 ISAPI_Rewrite URL处理引擎
先介绍一下ISAPI_Rewrite :

ISAPI_Rewrite是一个强大的基于正则表达式的URL处理引擎。它非常类似于Apache's mod_Rewrite,但它是专为IIS设计的。
ISAPI_Rewrite有两个版本:ISAPI_Rewrite Full与ISAPI_Rewrite Lite。
ISAPI_Rewrite Lite是免费版本,但不支持反向代理功能。
ISAPI_Rewrite Full只能下载到30天的试用版本。
解析二级域名就可以用ISAPI_Rewrite一个规则来实现。
如:
test.test.com 映射成 www.test.com/test/
规则如下:
RewriteCond Host: (?!/.|www|ww)(.*).test.com
RewriteRule (.*) http/://www.test.com/$1$2 [I,R]

此三方法比较:
偶个人认为,方法一,解析速度会快点,但没有做过验证。只是感觉系统自带的东西会好些。
另,方法一和三,一台服务器可以做多域名的泛解析,而方法二,一台服务器只可以做一个域名的泛解析。

3、如何实现像博客中的二级域名

解析无限个二级域名的方法有三种:
无论使用哪种,都必须使用域名泛解析。将*.test.com(此处我们test.com作例子)解析到你指定的服务器上。
如:
*.test.com 222.222.222.222

注:
作域名泛解析前,必须确认域名服务商对你提供域名泛解析服务。否则,后面的工作都是徒劳的。

方法一:使用Windows自带DNS解析。
步骤:
1,添加好test.com,如下图

2,在test下添加一个名称为 * 的域 (右键,添加域),添加完如下图

3,在*的域下,添加一个主机(右键,新建主机,主机名称为空,IP则填写为您要将域名泛解析的对应IP),添加完如下图。

解析完成,测试一下,Ping test.test.com 是不是解析到222.222.222.222

方法二:使用程序进行判断调整。
步骤:
1,iis服务的主机头留空,新建Default.asp文件,并把新建文件的执行优先级设定为最高(IIS设置属性中的文档,将Default.asp移到最上面)。
Default.asp文件代码:
<%
Dim iURL
iURL = Split(Request.ServerVariables("SERVER_NAME"),".")
If Lcase(iURL(0))="www" Then
'此处为网站首页地址,请自行选择
Response.Redirect("index.asp")
Else
'如二级域名所调转地址,请自行更改此处地址
Response.Write( "<frameset><frame src=""**.asp?"&iURL(0)&".index.html""></frameset>")
End If
%>

方法三:使用 ISAPI_Rewrite URL处理引擎
先介绍一下ISAPI_Rewrite :

ISAPI_Rewrite是一个强大的基于正则表达式的URL处理引擎。它非常类似于Apache's mod_Rewrite,但它是专为IIS设计的。
ISAPI_Rewrite有两个版本:ISAPI_Rewrite Full与ISAPI_Rewrite Lite。
ISAPI_Rewrite Lite是免费版本,但不支持反向代理功能。
ISAPI_Rewrite Full只能下载到30天的试用版本。
解析二级域名就可以用ISAPI_Rewrite一个规则来实现。
如:
test.test.com 映射成 www.test.com/test/
规则如下:
RewriteCond Host: (?!/.|www|ww)(.*).test.com
RewriteRule (.*) http/://www.test.com/$1$2 [I,R]

此三方法比较:
偶个人认为,方法一,解析速度会快点,但没有做过验证。只是感觉系统自带的东西会好些。
另,方法一和三,一台服务器可以做多域名的泛解析,而方法二,一台服务器只可以做一个域名的泛解析。

4、怎么用.htaccess绑定二级域名到子目录

通过.htaccess文件设置重定向,把二级域名绑定到指定的子目录。
先把要绑定的域名A记录或CNAME也指向和主域名所在的主机IP,然后可以.htaccess通过如下代码绑定相应文件夹:

代码如下
复制代码

RewriteEngine on

RewriteCond %{HTTP_HOST} ^bbs.domain.com$

RewriteCond %{REQUEST_URI} !^/bbs/

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /bbs/$1

RewriteCond %{HTTP_HOST} ^bbs.domain.com$

RewriteRule ^(/)?$ bbs/index.php [L]

如果很多个二级域名都指定的话,每个都这么写.htaccess文件就会非常庞大臃肿,可以使用以下正则匹配写法:

代码如下
复制代码

RewriteCond %{HTTP_HOST} ^(bbs|blog|download).domain.com$
RewriteRule ^(.*)$ /%1/$1 [L, NC]

这样,会自动把bbs对应到bbs目录,blog对应到blog目录,download对应到download,要加新的域名时,只需要在上面那行按格式添加即可。

5、IIS7里UrlRewrite实现子域名怎么写

以你现在的方式,应该用不上重写吧:
1.把你的域名设置好泛解析
2.在IIS上设置好网站,留空主机头
3.asp.net 判断request.url.host
4.重下你要操作的。

6、有谁会用ISAPI_Rewrite对asp网站重写url实现二级域名吗?指导一下

网上找的,你试试
0、首先需要一个有效的顶级域名,并且设置该域名下二级域名的泛解析到虚拟主机所在服务器IP(即如:*.eboat.cn => 123.234.55.101)。

1、在http://www.helicontech.com/download.htm下载ISAPI_Rewrite Lite Free版本。版本不用太高,如果愿意付点$,用Full版当然也不错哦。安装,随便装在哪个位置。

注意:Lite版本不支持虚拟主机层次的配置,但仅仅是配置(就是dll只能读取自身安装目录下的全局配置httpd.ini)。如果是仅用于某虚拟主机的任意二级域名解析,可以将ISAPI_Rewrite.dll仅放置在该虚拟主机的配置中(即不在IIS的“网站>ISAPI筛选器”中插入,而是添加在虚拟主机网站的ISAPI筛选器中),这样就不会影响服务器对其它网站的处理。

2、将需要二级域名的虚拟主机的主机头置空,使得所有未在服务器上单独配置的虚拟主机域名都被定向到此处。注意!不是在服务器上单独新建一个无主机头的网站,必须在需要实现二级域名的当前网站上进行URL的Rewrite配置。这点很重要。

3、将ISAPI_Rewrite安装时自动配置在IIS中的全局设定取消(IIS>网站>ISAPI筛选器,删除ISAPI_Rewrite),在需要二级域名解析的虚拟主机(网站)中配置ISAPI_Rewrite.dll(属性>ISAPI筛选器>添加...,名称可以随便写,如Url-Rewrite)。

4、修改ISAPI_Rewrite安装目录下的配置文件httpd.ini。举例如下:
Java代码
[ISAPI_Rewrite]
RepeatLimit 1
# Defend your computer from some worm attacks
RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]

# 排除当前虚拟主机需要正常访问的域名(web.eboat.cn www.eboat.cn)
# RewriteCond Host: (?:web|www)\.eboat\.cn
# 多数情况下是一个,即当前提供二级域名服务的系统(如建站系统)
RewriteCond Host: web\.eboat\.cn
RewriteRule (.*) $1 [L]

# 解决不规范目录(末尾无/)的问题
# 但前提是目录名不含‘.’而文件名必须包含,否则无法区分两者
# 如果保证URL中的目录名称规范,则无需此规则
RewriteRule ^/([^.]+[^/]$) /$1/ [L,R]

# 提取任意的二级域名名称(即第一个词汇)
# 用[a-zA-Z0-9_-]限制名称字符,重写Url到Home/子目录下
# 如 test.eboat.cn => web.eboat.cn/Home/test
RewriteCond Host: ([a-zA-Z0-9_-]+)\.eboat\.cn
RewriteRule ^/(.*) /Home/$1/$2 [I,L]

[ISAPI_Rewrite]
RepeatLimit 1
# Defend your computer from some worm attacks
RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]

# 排除当前虚拟主机需要正常访问的域名(web.eboat.cn www.eboat.cn)
# RewriteCond Host: (?:web|www)\.eboat\.cn
# 多数情况下是一个,即当前提供二级域名服务的系统(如建站系统)
RewriteCond Host: web\.eboat\.cn
RewriteRule (.*) $1 [L]

# 解决不规范目录(末尾无/)的问题
# 但前提是目录名不含‘.’而文件名必须包含,否则无法区分两者
# 如果保证URL中的目录名称规范,则无需此规则
RewriteRule ^/([^.]+[^/]$) /$1/ [L,R]

# 提取任意的二级域名名称(即第一个词汇)
# 用[a-zA-Z0-9_-]限制名称字符,重写Url到Home/子目录下
# 如 test.eboat.cn => web.eboat.cn/Home/test
RewriteCond Host: ([a-zA-Z0-9_-]+)\.eboat\.cn
RewriteRule ^/(.*) /Home/$1/$2 [I,L]

注意!上面的规则不能写成
RewriteRule ^/(.*) http\://web\.eboat\.cn/Home/$1/$2 [I,L]

这也是必须在系统所在网站上解析的原因。如果最后是[I,R],访问是可以的,但是浏览器的地址栏会显示实际的Url,达不到透明二级域名的效果。

总结:

之前查了Google,没找到简单实现的例子。其实这主要是规则上的问题,即使是将ISAPI_Rewrite放在IIS的“网站”全局配置中也是可以的,因为规则不会匹配其它的网站(顶级域名限制),Rewrite不会起作用。只是放在全局配置中,访问其它网站也要经过这个.dll过滤器,或多或少的有些不合理。

成功配置和运行,网上说要用Full的破解版才行(1.x的版本,试过可行)。所以这里特地将Lite免费版的用法贴出来。

(注意:最后可能需要重启IIS服务器,检查一下ISAPI过滤器中Rewrite是否已经载入--绿色的向上箭头。另外,如果是NTFS文件系统,ISAPI_Rewrite的安装目录需要添加网站用户或everyone的写权限!)

7、如何增加一个二级域名?

第一步:将二级域名绑定到主机(ip)上。
第二步:修改/etc/httpd/conf/http.conf文件,在文件末尾添加如下配置信息:
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/etc/httpd/conf/vhost.map
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1
第三步:添加配置主机信息文件(注意http.conf中的主机配置文件位置)
#vi /etc/httpd/conf/vhost.map
www.phpddt.com /var/www/html
blog.phpddt.com /var/www/blog
好了,重启apache,你可以放入文件到blog文件夹做测试,另外,二级域名解析需要一段时间,请耐心等待。

8、求一个url_rewrite的正则表达式(用于二级域名跳转)

正则:
/mail\.(\w+\.\w{3})/is
替换为:
www.\1:6080

用php程序测试专:

$str = 'mail.zhoubish.com';
$pattern = '/mail\.(\w+\.\w{3})/is';
$str = preg_replace($pattern, 'www.\1:6080', $str);
echo $str;// 你想要的属

与rewrite实现二级域名相关的知识