htacess: redirecten naar mobile site+whitelist

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Hank Noseman

Hank Noseman

19/02/2021 14:43:52
Quote Anchor link
hallo,

ik zou graag het volgende willen:

mijn site moet toegankelijk zijn voor 3 ip adressen. in alle andere gevallen moet message.php getoond worden.
dit is gelukt met onderstaande code.

nu zou ik er nog bij willen dat voor de 3 ip adressen de site automatisch doorgelinkt wordt naar een mobiele versie indien je de site met een mobiele telefoon bekijkt.

iemand ideeeen?

alvast bedankt

bart




Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<IfModule mod_rewrite.c>
 RewriteEngine on

 RewriteCond %{REMOTE_ADDR} 11\.111\.11\.11 [OR] #ip1
  RewriteCond %{REMOTE_ADDR} 22\.222\.22\.22 [OR] #ip2
  RewriteCond %{REMOTE_ADDR} 33\.333\.33\.333 #ip3
  RewriteRule .* - [L] #do nothing


 #if we are here, the IP is not in the allowed list, redirect
 RewriteCond %{REQUEST_URI} !/message.php [NC]
  RewriteRule .* /message.php [R=302,L]
</IfModule>
Gewijzigd op 19/02/2021 14:44:35 door Hank Noseman
 
PHP hulp

PHP hulp

19/03/2024 05:15:53
 
- Ariën  -
Beheerder

- Ariën -

19/02/2021 14:46:55
Quote Anchor link
Dan kan je dit beter via PHP doen.
http://mobiledetect.net/
 
Hank Noseman

Hank Noseman

19/02/2021 15:13:55
Quote Anchor link
bedankt maar ik zou het toch graag via htaccess willen doen. ik heb wel de onderstaande werkende code gevonden voor het reridrecten naar een mobiele site maar hoe integreer ik de toegestaande ip adressen?

ik ben niet zo thuis in htaccess





Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<IfModule mod_rewrite.c>
 RewriteEngine on

RewriteCond %{HTTP_USER_AGENT} android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge\ |maemo|midp|mmp|opera\ m(ob|in)i|palm(\ os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows\ (ce|phone)|xda|xiino [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ^(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|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|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|xda(\-|2|g)|yas\-|your|zeto|zte\-) [NC]
    RewriteRule ^$ http://www.mobileversionofhesite.nl [R,L]



  







</IfModule>
Gewijzigd op 19/02/2021 15:14:53 door Hank Noseman
 
- Ariën  -
Beheerder

- Ariën -

19/02/2021 15:19:55
Quote Anchor link
Die condities van de IP-adressen kan je er gewoon boven plaatsen.
Persoonlijk zou ik het afhandelen via het genoemde script. Dan kan je eenvoudig met bijv. composer om de zoveel tijd een update uitvoeren als er een nieuwe useragent is.
Gewijzigd op 19/02/2021 15:21:15 door - Ariën -
 
Hank Noseman

Hank Noseman

19/02/2021 15:24:40
Quote Anchor link
ik heb het boven elkaar gezet maar dan werkt het redirecten naar een mobile device niet

Toevoeging op 19/02/2021 15:39:22:

ik heb nu het volgende maar het werkt niet. weet iemand hoe het zit met condities en haakjes in htaccess?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<IfModule mod_rewrite.c>
 RewriteEngine on

(
    RewriteCond %{REMOTE_ADDR} 11\.111\.11\.11 [OR] #ip1
    RewriteCond %{REMOTE_ADDR} 22\.222\.22\.22 #ip2)
) [AND]
(
    RewriteCond %{HTTP_USER_AGENT} android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge\ |maemo|midp|mmp|opera\ m(ob|in)i|palm(\ os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows\ (ce|phone)|xda|xiino [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ^(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|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|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|xda(\-|2|g)|yas\-|your|zeto|zte\-) [NC]
)
RewriteRule ^$ http://www.mobiel.nl [R,L]

(
    RewriteCond %{REMOTE_ADDR} 11\.111\.11\.11 [OR] #ip1
    RewriteCond %{REMOTE_ADDR} 22\.222\.22\.22 #ip2)
)
RewriteRule ^$ http://www.normaal.nl [R,L]






 #if we are here, the IP is not in the allowed list, redirect
 RewriteCond %{REQUEST_URI} !/message.php [NC]
  RewriteRule .* /message.php [R=302,L]
</IfModule>
Gewijzigd op 19/02/2021 15:40:48 door Hank Noseman
 
- Ariën  -
Beheerder

- Ariën -

19/02/2021 15:54:36
Quote Anchor link
Haakjes gebruik je niet bij condities.
 
Hank Noseman

Hank Noseman

19/02/2021 19:21:26
Quote Anchor link
ik begrijp er nog helemaal niks van. dit werkt ook bv niet

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
RewriteEngine on
<If {REMOTE_ADDR} == '11.111.111.111'>
    RewriteRule .* http://www.google.nl
</If>
<Else>
    RewriteRule .* http://www.test.nl
</Else>
 
- Ariën  -
Beheerder

- Ariën -

19/02/2021 20:11:17
Quote Anchor link
Een else na een eindigend if-blok lijkt niet logisch.

If-else-/if is de volgorde.
Maar met welke reden moet die mobile-device detectie in .htaccess?
 
Hank Noseman

Hank Noseman

19/02/2021 20:32:58
Quote Anchor link
volgens mij is dit de syntax als ik het goed heb.

de reden dat ik het tof vind om het in htaccess te doen is dat ik het wel elegant vind.

bovendien wil ik wel dat het mogelijk moet zijn om de desktopversie op je mobiel op te vragen door in het menu van chrome desktopsite aan te klikken.

kweet niet of dat met die class ook kan?
 
- Ariën  -
Beheerder

- Ariën -

19/02/2021 20:36:37
Quote Anchor link
Het is lastig te onderhouden. Ik zelf raad aan om zo min mogelijk .htaccess regels te maken, en bij voorkeur in PHP de routing te regelen.

Verder snap ik niet wat het bekijken van een desktopversie (?) volgens jou te maken heeft met een class?
Gewijzigd op 19/02/2021 20:36:59 door - Ariën -
 
Ad Fundum

Ad Fundum

19/02/2021 23:10:10
Quote Anchor link
Ik denk dat Mobile-Detect niet echt een goed voorbeeld is van hoe je een mobiel device herkent.
Het hoort gewoon niet via een volledige opsomming van alle User-Agent strings van alle browsers, dat moet beter kunnen!

Daarbij denk ik dat de gedachtengang van de vragensteller verder uitgediept moet.
Waarom zou je willen herkennen of een device mobiel is? Waarom wel telefoons en tablets, maar geen netbooks, laptops, en bijvoorbeeld embedded systemen? Maakt het echt uit waar iemand is, als hij/zij de website bezoekt?

Doorgaans telt maar 1 ding bij websites: of je alles kwijt kunt op het schermformaat of niet. En daarvoor gebruik je CSS media queries. Je kunt daarmee selectief resources laden, ook om bandbreedte van het hetwerk te beperken.

Zie: https://www.w3schools.com/css/css3_mediaqueries_ex.asp
Gewijzigd op 19/02/2021 23:11:16 door Ad Fundum
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.