Laravel detect device and redirect to Mobile-tablet website in PHP

Laravel detect device and redirect to Mobile-tablet website in PHP

What is .htaccess file ?

htaccess is short meanings for Hypertext Access all the pages, and is a configuration or settings file used by linux server Apache-based web servers that all the controls the directory or sub-folders that it “lives” currently in as well as all the subdirectories all the content underneath that config directory.

Laravel .htaccess to detect mobile device and redirect to mobile site

It’s not part of PHP; it’s part of Apache.

.htaccess files provide simple a way to make all the configuration changes on a ftp to per-directory basis..htaccess is short for Hypertext Access,

Uses of .htaccess file

Below are some simple usage of htaccess files in server:
1) AUTHORIZATION, AUTHENTICATION:
2) CUSTOMIZED ERROR RESPONSES
3) REWRITING URLS:
4) CACHE CONTROL:

Javascript using Redirect User Agent and Mobile-tablet

<script language="javascript"><!--
var mysdomain = 'http://m.';
var myurl = window.location.href;
var result = myurl.match(/:\/\/\w+\.(.+)/)[1];
var checkmobl = (/iphone|ipad|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase()));
 if (checkmobl) {
 window.location.href= mysdomain + result;
 } //-->
</script>

How to detect device and redirect to mobile website in PHP

Laravel redirect to mobile site Example

Laravel .htaccess Remove to public from URL

    <IfModule mod_rewrite.c>
       RewriteEngine On 
       RewriteRule ^(.*)$ public/$1 [L]
    </IfModule>

simple Manage Error response

404 not found then we can fix this simple error using .htaccess file

    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

Redirect URL to Another URL Using .htaccess

xyz.com to www.xyz.com

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

How to Redirect URL to Mobile site Using .htaccess

Redirect Mobile Users to Your Mobile Site with Redirectron

Option1: using .htaccess using Laravel

    RewriteEngine On
    RewriteCond %{QUERY_STRING} !^desktop
    RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|iphone|ipod|#opera mobile|palmos|webos" [NC]
    RewriteCond %{HTTP_USER_AGENT} "acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "dang|doco|eric|hipt|inno|ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT}  "maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "wapp|wapr|webc|winw|winw|xda|xda-" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "up.browser|up.link|windowssce|iemobile|mini|mmp" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "symbian|midp|wap|phone|pocket|mobile|pda|psp" [NC]
    RewriteRule ^$ http://m.your_domain.com [L,R=302]

Option2: Using Laravel Routes using Laravel

	
	    function islivemobile() {
        if(isset($_SERVER['HTTP_USER_AGENT'])) {
        $useragent=$_SERVER['HTTP_USER_AGENT'];
        if(preg_match('/(tablet|ipad|amazon|playbook)|(android(?!.*(mobi|opera mini)))/i', strtolower($useragent))) {
            return true ;
        } ;
        
        if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4))){
                return true ;
            }
        }
        return 0 ;
    }
    if(islivemobile()) {
        include_once(app_path().'/routes/livemobileroutes.php');
    } else {
        require_once(app_path().'/routes/yourwebsite_routes.php');
    }

Example


Related FAQ

Here are some more FAQ related to this Article:

  1.   Laravel 5/6/7 CRUD Operations Example Step By Step
  2.   jQuery Ajax Bootstrap Table Pagination using PHP MySQLi
  3.   PHP Laravel 7 Send Email Example Tutorial
  4.   Add prefix in each key of PHP Array
  5.   jQuery Get the Text Value of Selected Option
  6.   How to Setup Laravel 6 Login Authentication Tutorial
  7.   PHP OOP CRUD MVC Framework Tutorial
  8.   Remove undefined value from jquery array
  9.   Laravel 6 eloquent Batch update multiple Jobs
  10.   Laravel Create Update Delete and Getters eloquent methods

Leave a Reply

Your email address will not be published. Required fields are marked *