2011-02-28 4 views
0

Possible en double:
How to rewrite to mobile.myUrl.com if user is mobile? (use Apache or inside Webapp?).htaccess redirect

Salut à tous! Je suis en train d'écrire une règle de réécriture, qui redirigerez toutes les adresses dans mon domaine, à index.php, comme ceci:

RewriteCond %{REQUEST_URI} !=/index.php RewriteRule .* /index.php

Le problème avec ce code est que je vérifie si index.php l'utilisateur est venu sur mon site web depuis un pc, ou un appareil mobile, et d'après cela je le redirige vers la version appropriée (index.html, ou mobi.html) - maintenant que cette règle s'applique, je suis coincé dans une boucle de redirection. Pls aide stackoverflowers :).

+0

Ceci serait plus facile à résoudre dans un langage côté serveur comme PHP, car vous devrez maintenir une liste d'agents utilisateurs susceptibles de se développer au fil du temps. E.g .: http://stackoverflow.com/questions/4117555/simplest-way-to-detect-a-mobile-device –

+0

Mais je sais comment détecter un appareil mobile - et je le fais en php. J'utilise cette condition de réécriture en raison de la situation comme ceci: www.my-web-site.com/atricle/id <- est nécessaire de capturer/article/id, de sorte que mon application ne suivra pas cette URL. – marek

+0

qu'est-ce que cela a à voir avec la détection de dispositifs mobiles alors? Je ne comprends pas. –

Répondre

0

Soit vous venez d'exclure les pages index.html et mobi.html:

RewriteCond %{REQUEST_URI} !=/index.php 
RewriteCond %{REQUEST_URI} !=/index.html 
RewriteCond %{REQUEST_URI} !=/mobi.html 
RewriteRule .* /index.php 

ou vous pouvez définir une variable GET dans votre URL redirigée, comme header('Location: domain.com/index.html?norewrite'); et ne pas réécrire l'URL si elle contient cette variable:

RewriteCond %{REQUEST_URI} !=/index.php 
RewriteCond %{QUERY_STRING} !^(.*&)?norewrite(&.*)?$ 
RewriteRule .* /index.php