1、js
<script src="http://static.dudamobile.com/DM_redirect.js" type="text/javascript"></script>
<script type="text/javascript">
DM_redirect("http://m.example.com");
</script>
2、php
<?php
$mobileDomain = "http:// m.example.com ";
$no_redirect = @$_REQUEST['no_redirect'];
if($no_redirect != "true")
{
$agent = @$_SERVER['HTTP_USER_AGENT'];
@ini_set('default_socket_timeout',1);
$handle = @fopen("http://mobile.dudamobile.com/api/public/detect?ua=" . urlencode($agent), "r");
@stream_set_timeout($handle, 1);
/* check if we should redirect*/
$result = @fread ( $handle , 1 );
@fclose($handle);
if ($result == "y") {
$currenturl = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$mobileUrl = $mobileDomain ."?url=" .urlencode($currenturl);
header("Location: ".$mobileUrl);
exit;
}
}
?>
3、asp
<%
Dim no_redirect, detecturl, handle, output, currenturl, mobileUrl
no_redirect = Request.QueryString("no_redirect")
If no_redirect <> "true" Then
currenturl = ( "http://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL") ) & "?" & Request.ServerVariables("QUERY_STRING")
detecturl = "http://mobile.dudamobile.com/api/public/detect?ua=" & Server.UrlEncode(Request.ServerVariables("HTTP_USER_AGENT"))
set handle = CreateObject("MSXML2.ServerXMLHTTP")
handle.setTimeouts 5000,5000,5000,5000
handle.open "GET", detecturl, false
handle.send ""
output = handle.responseText
mobileUrl = " http:// m.example.com " & "?url=" & Server.UrlEncode(currenturl)
If output = "y" Then
Response.Redirect(mobileUrl)
End If
End If
%>
4、jsp
<%@page import="java.net.URLEncoder"%>
<%@page import="java.net.URL"%>
<%@page import="java.net.HttpURLConnection"%>
<%
if(! "true".equals(request.getParameter("no_redirect")))
{
String currenturl = request.getRequestURL() + (request.getQueryString() != null ? "?" + request.getQueryString() : "");
try{
String ua = URLEncoder.encode(request.getHeader("user-agent"), "utf-8")).openConnection();
HttpURLConnection con = (HttpURLConnection)new URL("http://mobile.dudamobile.com/api/public/detect?ua=" + ua);
con.setConnectTimeout(5000); //set timeout to 5 seconds
char c = (char)con.getInputStream().read();
con.disconnect();
if(c == 'y')
{
String mobileUrl = "http://m.example.com";
response.sendRedirect(mobileUrl + "?url=" + URLEncoder.encode(currenturl));
}
}
catch(Exception e){
e.printStackTrace();
}
}
%>
</code>
</pre>
</div><!--/entry -->
</div><!--/post -->
</div>
DM_redirect.js
function DM_redirect(MobileURL, Home){
try {
// avoid loops within mobile site
if(document.getElementById("dmRoot") != null)
{
return;
}
var CurrentUrl = location.href
var noredirect = document.location.search;
if (noredirect.indexOf("no_redirect=true") < 0){
if ((navigator.userAgent.match(/(iPhone|iPod|BlackBerry|Android|webOS|Windows CE|IEMobile|Opera Mini|Opera Mobi|HTC|LG-|LGE|SAMSUNG|Samsung|SEC-SGH|Symbian|Nokia|PlayStation|PLAYSTATION|Nintendo DSi)/i)) ) {
location.replace(MobileURL);
if(Home){
}
else
{
location.replace(MobileURL + "?url=" + encodeURIComponent(CurrentUrl));
}
}
}
}
catch(err){}
}