webForumDet fria alternativet

htaccess hjälp för mobila enheter

Webbservrar

6 svar · 1 098 visningar · startad av dwmedia

Medlem sedan nov. 2006188 inlägg
Frågan#1

Så här ser min kod ut, men om dem besöker typ

https://www.domain.com

Så vill jag om dem besöker via mobilen att dem går till

http://m.domain.com men det blir
https://m.domain.com

men om dem besöker den typ så här
http://domain.com
så kommer den automatiskt att skickas till
http://m.domain.com

Men om dem besöker standard hemsidan via SSL så hedrar den till mobil sidan med HTTPS också.

Har inte hunnit fått mina SSL secikat för min mobila sida.
Går det och skriva om den så det blir som den heder jag har på 2 raden längst ner i koden?

<IfModule mod_rewrite.c>
RewriteBase /
RewriteEngine On

\# Check if mobile=1 is set and set cookie 'mobile' equal to 1
RewriteCond %{QUERY_STRING} (^\|&)mobile=1(&\|$)
RewriteRule ^ - \[CO=mobile:1:%{HTTP_HOST}\]

\# Check if mobile=0 is set and set cookie 'mobile' equal to 0
RewriteCond %{QUERY_STRING} (^\|&)mobile=0(&\|$)
RewriteRule ^ - \[CO=mobile:0:%{HTTP_HOST}\]

\# cookie can't be set and read in the same request so check
RewriteCond %{QUERY_STRING} (^\|&)mobile=0(&\|$)
RewriteRule ^ - 

\# Check if this looks like a mobile device
RewriteCond %{HTTP:x-wap-profile} !^$ \[OR\]
RewriteCond %{HTTP_USER_AGENT} "android\|blackberry\|ipad\|iphone\|ipod\|iemobile\|opera mobile\|palmos\|webos\|googlebot-mobile" \[NC,OR\]
RewriteCond %{HTTP:Profile}       !^$

\# Check if we're not already on the mobile site
RewriteCond %{HTTP_HOST}          !^m\\.
\# Check to make sure we haven't set the cookie before
RewriteCond %{HTTP:Cookie}        !\\mobile=0(;\|$)
\# Now redirect to the mobile site
RewriteRule ^ http://m.domain.com%{REQUEST_URI} \[R,L\]

</IfModule>

Medlem sedan aug. 20039 340 inlägg
#2

Heder? Hedra? Secikat?

Hursomhelst, regeln redirectar ju till http://m.domain.com%{REQUEST_URI} så mobila användare borde hamna på icke-SSL-varianten. Är det möjligen så att m.domain.com pekar mot en helt annan webbrot med en annan .htaccess som rikat om besökaren till https?

Kan man få se sidan live online?

Medlem sedan nov. 2006188 inlägg
#3

Ser inte ut som man får till det så här ser hela htaccessen ut.

<ifModule>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?r=$1 [L,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ index.php?r=$1&lang=$2 [L,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ index.php?r=$1&lang=$2&epi=$3 [L,QSA]
</ifModule>

<IfModule mod_rewrite.c>
RewriteBase /
RewriteEngine On

\# Check if mobile=1 is set and set cookie 'mobile' equal to 1
RewriteCond %{QUERY_STRING} (^\|&)mobile=1(&\|$)
RewriteRule ^ - \[CO=mobile:1:%{HTTP_HOST}\]

\# Check if mobile=0 is set and set cookie 'mobile' equal to 0
RewriteCond %{QUERY_STRING} (^\|&)mobile=0(&\|$)
RewriteRule ^ - \[CO=mobile:0:%{HTTP_HOST}\]

\# cookie can't be set and read in the same request so check
RewriteCond %{QUERY_STRING} (^\|&)mobile=0(&\|$)
RewriteRule ^ - 

\# Check if this looks like a mobile device
RewriteCond %{HTTP:x-wap-profile} !^$ \[OR\]
RewriteCond %{HTTP_USER_AGENT} "android\|blackberry\|ipad\|iphone\|ipod\|iemobile\|opera mobile\|palmos\|webos\|googlebot-mobile" \[NC,OR\]
RewriteCond %{HTTP:Profile}       !^$

\# Check if we're not already on the mobile site
RewriteCond %{HTTP_HOST}          !^m\\.
\# Check to make sure we haven't set the cookie before
RewriteCond %{HTTP:Cookie}        !\\mobile=0(;\|$)
\# Now redirect to the mobile site
RewriteRule ^ http://m.domain.com%{REQUEST_URI} \[R,L\]

</IfModule>

Medlem sedan nov. 2006188 inlägg
#4

Bump hoppas någon kan lösa det får fan inte till det :/

Medlem sedan aug. 20068 090 inlägg
#5

dwmedia skrev:

Bump hoppas någon kan lösa det får fan inte till det :/

Alltså....

För det första skriver du tyvärr så enbarmligt dålig svenska och stavar så åt helvete att man måste gissa vad det är du menar. Man orkar helt enkelt inte att läsa. Kolla gärna http://www.backendmedia.se/2006/08/10/ska-jag-skriva-dom-de-eller-dem/. Bokmärk och försök komma ihåg.

För det andra så funkar inte browser- eller systemsniffing särskilt bra över huvud taget, och i synnerhet inte när det gäller handhelds (som t.ex. mobiltelefoner).

Det du kan göra är att erbjuda länkar från ena varianten till den andra och eventuellt länka till https://www.handsetdetection.com/ som kan hjälpa en del.

Medlem sedan nov. 2006188 inlägg
#6

Sorry :)

Men även om jag kör med google mobile detect

include("_scripts/mobil/Mobile_Detect.php");
$detect = new Mobile_Detect();

if ($detect->isMobile()) {

header("Location: http://m.domain.com");
exit;
}

Så besöker dem
http://domain.com så går dem till http://m.domain.com

Går dem via
https://www.domain.com / http://www.domain.com / https://www.domain.com

så går dem automaatiskt till
https://m.domain.com

Så det spelar som ingen roll om jag skriver i en class eller om jag skriver i htaccess går den via https adress så går dem till https adress på subdomänen.

Blir snart så förbannad att jag köper mig en SSL för mobila sidan också för få det löst.

Medlem sedan nov. 2006188 inlägg
#7

Löste det med javascript header en vanlig header fungerar inte.

include("_scripts/mobil/Mobile_Detect.php");
$detect = new Mobile_Detect();

if ($detect->isMobile()) {
echo "<script type='text/javascript'>self.location=('http://m.domain.com')</script>";
}

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)