Mám web, který ukládá index.php pro stolní počítače a mobile.php pro mobilní zařízení. Oba soubory jsou ve stejném adresáři (řekněme /var/www). Ve výchozím nastavení uživatel přistupuje index.php a pokud je jeho šířka obrazovky menší než 900 px, bude přesměrován na mobile.php.

Chcete-li načíst různý obsah uvnitř index.php nebo mobile.php existují odkazy na nabídky předávající jednu nebo dvě proměnné php, které udávají adresář, kde je uložen obsah.

například pokud chci zobrazit umístění, ze kterého stránku načítám ./Contact/Location/Location.php do index.php.

Problém je v tom .htaccess neví, jestli pracuji s výchozím nastavením nebo s mobilním webem, takže následující pravidla nefungují společně:

RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ index.php?id=$1&id2=$2 [QSA] RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ mobile.php?id=$1&id2=$2 [QSA,L] 

Existuje způsob, jak to fungovat? Hlavní výhodou toho, že to mám takhle, je to, že nemusím udržovat dvě stránky. Rozvržení je provedeno zcela uvnitř mobile.php a index.php.

  • Chtěli byste hledat různé adresy URL pro mobily a počítače /1234/5678/ pro stolní počítače a /m/1234/5678/ pro mobil? Říkáte, že uživatelé dostávají přesměrování do mobilních zařízení, takže by šlo pouze o změnu kódu, který přesměrování používá, /m/ URL.
  • To se zdá být velmi špatný způsob, jak to udělat - proč nezačlenit logiku přepínání přímo do php (mimochodem, pokud obsahuje podmíněné?), Nebo ještě lépe použít CSS k vhodnému vykreslení webu pro každé zařízení. Viz také stackoverflow.com/questions/930431/… o tom, jak používat proměnné prostředí v konfiguraci Apache, takže můžete vybrat pravidlo přepsání proměnné v .htaccess - ale yuk.

Chcete-li tuto nejednoznačnost vyřešit, musíte adresy URL pro mobilní zařízení a počítače odlišit. Možná s /m/ (mobilní) a / nebo /d/ (desktop) prefix?

Například, /m/Contact/Location/ pro váš mobilní web a výchozí /Contact/Location/ pro web pro počítače. Jelikož však v dnešní době existuje silná preference „nejprve pro mobily“, možná by to tak mělo být /d/ pro stolní počítače a bez předpony pro mobilní zařízení?

Chcete-li načíst různý obsah uvnitř index.php nebo mobile.php existují odkazy na nabídky předávající jednu nebo dvě proměnné php, které udávají adresář, kde je uložen obsah.

Abych byl upřímný, když jsem si to přečetl, předpokládal jsem, že už nějakým způsobem rozlišujete adresy URL pro mobilní zařízení a počítače? Myslím, že ne.

Musíte povolit uživatelům ruční přepínání mezi stolním počítačem a mobilním telefonem. Tuto uživatelskou předvolbu byste mohli uložit do proměnné cookie / relace (i když to není nezbytně nutné, pokud se adresy URL liší).

Adresu URL můžete přepsat pouze na základě souboru cookie pro mobily / počítače (čitelný z .htaccess), nicméně, vyhledávače obecně ne procházejí s cookies (Google ne), takže to pravděpodobně způsobí problémy s indexováním.

Ve výchozím nastavení uživatel přistupuje index.php a pokud je jeho šířka obrazovky menší než 900 px, bude přesměrován na mobile.php

Jak řešíte současné procházení vyhledávače? Pokud adresu nezměníte, domnívám se, že by Google mohl být při vyhledávání pomocí mobilního uživatelského agenta přesměrován na každý požadavek na stránku?

(Stranou: „méně než 900 px“ - předpokládám, že se jedná o CSS px, nikoli o skutečné pixely obrazovky?)

Zvažovali jste zcela citlivý místo toho design? Jedna adresa URL pro mobilní zařízení i pro počítače. index.php pro mobilní i stolní počítače.

Pracoval pro vás: Charles Robertson | Chcete nás kontaktovat?