2010-07-02 23 views
2

J'espère que quelqu'un pourra m'aider. Pour mon site Web, j'ai un site mobile correspondant qui a le même contenu que mon site complet, mais l'afficher pour les appareils mobiles. Fondamentalement, je veux envoyer toutes les demandes à partir du site complet sur le site mobile à moins que le sms de variable url existeRéécrire le numéro d'url

Donc, dans mon fichier htaccess pour tout mon site, j'ai ceci:

RewriteCond %{QUERY_STRING}  !sms=1   [NC] 
RewriteRule ^(.*) http://mobile.mysite.co.uk/$1 [QSA,NC] 

Mais quand je suis arrivé www.mysite.co.uk/news/index.cfm & sms Je reçois l'erreur ColdFusion suivante pour le site complet:

File not found: /news/index.cfm 

débogage activée j'ai remarqué que le CGI PATH_TRANSLATED la variable a été modifiée de

C:\webistes\mysite\news\index.cfm 

Pour

C:\JRun4\bin\http:\mobile.mysite.co.uk\news\index.cfm 

Je suis à une perte de undestand ce qui se passe? Toute aide ou compréhension serait grandement appréciée.

De plus, je lance une installation multi-serveur de ColdFusion 8 et utilise Apache configuré pour ColdFusion.

Répondre

4

Il semble que vous souhaitiez effectuer une redirection externe, mais votre RewriteRule réécrit actuellement uniquement l'URL en interne. Essayez d'ajouter à votre règle drapeaux R et L pour voir si cela fait une différence:

# Stop and redirect immediately to the mobile site 
RewriteCond %{QUERY_STRING}  !sms=1   [NC] 
RewriteCond %{HTTP_HOST}  !^mobile 
RewriteRule ^(.*) http://mobile.mysite.co.uk/$1 [QSA,NC,R,L] 

J'ai aussi ajouté dans un RewriteCond pour vous assurer qu'il ne vous redirige pas si vous êtes déjà sur le site mobile , dans le cas où vos deux sites pointent vers le même endroit (vous pouvez le supprimer s'ils ne le font pas, je voulais juste vous sauver la migraine dans le cas où ils l'ont fait).

+0

Merci beaucoup Tim. Bien expliqué et très rapide –