ASP/PHP实现主机头多域名转向的方法
ASP:/ k0 A/ l s1 y3 Z0 E) P* {( n4 P
1.使用CASE语句,缺点:同一域名即@和www需要两次循环,代码显重复 ! o$ f0 P- R/ n/ n; c3 r
<%
% J" n9 M: t9 }- R: zhost=lcase(request.servervariables("HTTP_HOST"))
9 a9 u) U B3 |select CASE host1 Q/ R% |0 n/ U+ M/ ~) S1 k% z
CASE "www.abc.com" u& ~; P9 s) z& q
response.redirect "index.htm"
) [; y6 k3 l3 \- k3 y% }* n4 oCASE "abc.com"
6 y z* Q4 u9 }. I2 Dresponse.redirect "index.htm"' S r. f+ U0 A; G
$ s7 j. g2 z: a0 K
CASE ELSE
& D P8 F) n, R' @7 r" Z% Uresponse.redirect "other.htm"/ n2 c2 m9 [) v& b
END select% o+ x7 q5 V! M& L) J" F
%>
! Y0 m" G; l# t7 {3 x4 u0 t6 x--------------------------
/ z3 ]% p G( j$ U) Q$ ]<%if instr(Request.ServerVariables) t3 H6 A* W% R
("SERVER_NAME"),"kekexi.com")>0 then, s" W; Y8 F0 I h! j: g6 Z( j
response.redirect "index.asp"( e; W3 n2 a( i) |. p
else if instr(Request.ServerVariables+ B: C: \6 W9 m
("SERVER_NAME"),"4668.com")>0 then
4 g3 S1 q* L- h6 L2 Y* z# Iresponse.redirect "x/index.asp". D- F! s2 j/ |5 \% \2 {3 q% f1 r
else if instr(Request.ServerVariables4 L0 i( X6 V$ D
("SERVER_NAME"),"web315.com")>0 thenr! t) y2 a$ A" s- ~9 \( y
esponse.redirect "index3.asp"
5 O# A% k u! v3 A. Jend if
* X7 M9 ~6 J$ ^( R1 A7 e) h& yend if% }; v5 x& O6 Z) A5 }
$ ^3 Z, } a9 l( r$ k9 _) w) T
-----------------------' j2 x {9 {+ o3 s2 R7 z
<%if Request.ServerVariables("SERVER_NAME")="www.yyjs.com" then
6 `! t' J7 ]0 }3 E, N( L: Cresponse.redirect "zkj"
7 g$ t) s' ~$ |6 Q$ \3 relse
" t' d) r+ O& n+ V/ Xresponse.redirect "i.htm"
, `3 G& ~; d0 g7 Q# n) |5 tend if%>
0 K# O* G4 k, o3 h
3 o9 p$ U4 h5 J4 @' ^----------------------------9 S/ S: P/ ~. w: Z+ S3 j
<%if Request.ServerVariables("SERVER_NAME")="www.yyjs.com" then' i( q4 W' |& f2 u' z- m2 U
response.redirect "index1.asp"
% B) ?* v. R% e9 G% t: |' H) ^else if Request.ServerVariables("SERVER_NAME")="www.ce.org.cn" then
& Q$ c5 g4 m! |+ l: k( Presponse.redirect "index2.asp". x; j5 N. R0 Y7 }6 @
else if Request.ServerVariables("SERVER_NAME")="www.163.com" then5 q. R% _# l2 u& R$ f
response.redirect "index3.asp"+ r" y+ @3 O" e& Q
end if
& e: f% c5 }# o/ n0 ?4 ^end if
3 e* s: E+ Q$ x- G. rend if%>
' G; L. z! b6 O3 y/ ]6 m2 V) c
" i' y6 B! q; W
3 p; O" f+ ?: W1 w# o2.为解决上述问题,可以加条件判断加上www. 这样就可以自动识别www前缀:
+ b! ]% [0 o/ C' m( n, I1 f! @8 C4 E( a7 r" b- U# b+ I, x) {
<%5 X- `! W! S1 s0 P- h+ C/ B
dim domain6 M* w) c" z% I( }
domain=request.ServerVariables("Server_Name")
, R: c; N, a7 Q8 k) @$ xif instr(domain,"www.") then domain=right(domain,len(domain)-4)/ n6 d2 B/ J- L
if domain="abc.com" then1 q4 w% ?4 j2 I# U' I/ f% \
response.redirect "1/"8 @/ `0 \0 F: |: C: X" x
elseif domain="123.com" then$ O! v; f7 N! x
response.redirect "2/"
- h' L/ A; x, F. e1 I" K, f telse
% U, o q1 o( f/ qresponse.redirect "3/"$ o4 F& p5 x. I9 f9 T! h y
end if
- B8 H! e! i* X |( T" \2 v%> * W1 x+ o. G @5 M. t
* v e, P8 V9 \5 G" W1 w3.
; E4 [7 a* U$ M( ^6 K) X) ]+ P5 b+ ~' ?
====================================
8 s# B& A& V4 V& z$ T5 sPHP:
; R" X# @/ v5 G/ m# Z! a5 E1.多个
8 G+ [7 T" G4 h* A3 s9 b/ b6 z$ g1 E/ C
<?php/ F! h4 F1 L, k: i7 P" w0 g
$domain_net="abc.com";* K9 U7 \& ]2 H8 X: l
$dot_net_url="目录1/";
1 A |, M# |' M* B' z0 W* e$dot_com_url="目录2/";" B/ [9 x& d1 P# V; p# L' e
if(($HTTP_HOST=="$domain_net")or($HTTP_HOST=="www.$domain_net"))
' B2 t% I& O0 Y' p f9 ~! n/ k{* p8 I, V/ z' Y# ?( F
Header("Location: $dot_net_url");
, X- K! v6 d: T' {- R}
, r# J8 j9 m0 \else
4 i6 O; G; {% U; f+ {, c& r{7 \) A$ k: X# ^8 B, V' f
Header("Location: $dot_com_url");3 x7 w! ^4 u4 V% q
}( ~( P) k# U, c4 W3 m' ?7 V
?>& v7 |. q: ~7 I+ {4 x1 K9 P Z
% z. }) n7 N- P2 F3 s" s3 s3 r) N a( X
<?php9 Q f \* b8 `9 k' k: b2 F4 n
switch ($_SERVER["HTTP_HOST"]) { 0 I' I2 |3 c1 A/ P* F
case "ychon.org":
' L# q: H: @7 L5 xheader("location:bbs");
. w; S5 O4 L; ]+ v" l4 \, @4 f4 {; xbreak;
9 |0 y% a5 y. I' D) L2 a& @3 ]default:: D% s) v- J) `# R
header("location:news");9 t# ?' H5 f [0 d* ^9 M
break;
5 K/ Q* P4 L4 ~8 J+ i}
+ \. u! z: ?: {) x4 S?>( L, X" ]/ T/ Z$ J {2 M" `! ]
' U% {+ c; P% z: X, o( H4 h/ z
2.单个 1 _; Z- S8 q8 L. x4 i
<?5 C$ m: |0 O6 h
Header("Location: [url]http://www.ychon.org"); 3 }/ j, W4 O/ K7 e9 H& W) S* v
?>
0 v8 H, E8 K: o5 t1 A或:
6 N7 V1 L9 G: T3 }<?
0 R% Z y5 y! [, q) Recho "<#1 http-equiv=refresh content='0; url=http://www.ychon.org'>"; 3 S2 o1 d9 ?3 q' A6 ^* f
?> 3 K( q) O- ~& b/ [# H1 s7 l
还可以这样用:
! C( n4 ?! H& W<?
# A; P& f; J% A% W# T3 Xheader("refresh:3;url=http://web.com");
+ e( i1 D2 P( q0 _, e2 t7 o?>
1 u4 D8 ^$ I/ l注意:使用Header函数时必须网页未产生任何输出,此时尤其要注意空格的问题。即必须放在网页最开- N1 G- ~- x% Z7 `) v+ W
2 l. Q5 |5 t e: O" M- H# b/ r
始处。) N& n5 ?) N4 M0 N; e7 L
" x% u) `6 Z, c, e
====================================
6 p" w. p: S% T0 `% k5 w5 @/ pJava Script : 5 l* W0 N, W3 v7 t# z2 O3 s2 Z( L& s
. O, Y* K; H( ^; I( ]3 k9 F. F# r
<script>try { if( self.location == "http://玉米一/" ) {8 v, u/ p/ _; { T! W3 y2 D
top.location.href = "http://玉米一/目录";4 h# J1 ]% r) w! f; t
}! {5 B( V; n; U
else if( self.location == "http://玉米二/" ) {( d4 \5 d: V/ Y$ { v0 i P
top.location.href = "http://玉米二/目录";5 V7 A8 r* x5 ?: a* G
}
5 f- _( d) ?1 {else if( self.location == "http://玉米三/" ) {" t2 C/ t+ y8 V9 V
top.location.href = "http://玉米三/目录";+ |' Y2 [" Z% e7 U0 z8 @
}( r3 W8 v; E9 f% |4 e
else if( self.location == "http://玉米四/" ) {( V2 v: M* { g$ O9 g% z
top.location.href = "http://玉米四/目录";" U c/ n& U! h9 b7 K
}; b( I7 E* m7 ?# R2 O7 W
else { document.write ("错误的访问地址") } } catch(e) { }</script> 0 O" i$ Z& j5 v& p, L0 a" i9 u
5 b& P4 t1 I/ U N+ B$ E% k7 J6 S
{, H- Z/ \' d
-------------------------------------
: Y. D7 v; u# h1 ?7 _8 k
$ X' q1 J, A: Y3 C<script language="javascript">
. a/ ~/ R- g' n4 _# k2 Q! B9 `switch (window.location.hostname) {2 m! U" p1 g) ]
case "test" ://确定玉米为TEST
" T4 j/ k" z @. B& V% swindow.location.pathname="1"//跳转到1目录8 ]3 m7 |$ n7 q) s# D
break;
0 X. ]2 K9 C# u8 kcase "127.0.0.1" ://确定玉米为127.0.0.1 R/ e# H: h+ s3 j4 {. d
window.location.pathname="2"//跳转到2目录. a2 J X6 ^1 A4 W9 k7 L
break;0 f4 V9 h F% `, v! O" |
//依次类推写下去
2 N, \! b1 y' w* a3 \$ Bdefault ://如果没有找到该玉米6 ^) p) y8 Y m7 p' [+ O0 E" {
window.location.pathname="3"//跳转到3目录) ^4 h: X5 c" T& T/ k
}! F. p& B& }) e2 ~6 X: u2 T
</script>
( _ x2 v8 K, w n+ [$ e+ z
; A* @/ x; A4 E: v
' G* V" s6 h$ flocation对象有以下几个属性:
k( ?8 L6 u, l+ |3 p
1 x$ }' v1 w) D4 V! \$ Rhash 设置或获取 href 属性中在井号“#”后面的分段。0 n# ]( a2 v4 Q, }; M
host 设置或获取 location 或 URL 的 hostname 和 port 号码。
: N9 T5 z; C2 k" Z- t, Fhostname 设置或获取 location 或 URL 的主机名称部分。
# [; \; r. X3 n& t( Ehref 设置或获取整个 URL 为字符串。( C. i3 @6 w7 t/ ^% c, m
pathname 设置或获取对象指定的文件名或路径。
/ A5 v# w$ N* r4 M/ W1 X9 [( y7 {6 Yport 设置或获取与 URL 关联的端口号码。
) J* K, [( h% B' Q8 } vprotocol 设置或获取 URL 的协议部分。) e4 ]) E+ a2 l( @- F% p
search 设置或获取 href 属性中跟在问号后面的部分。