2010-07-02 115 views
2

我希望有人能帮助我。对于我的网站,我有一个与我的完整网站具有相同内容的相应移动网站,但将其显示在移动设备上。基本上,我想从整个网站的所有请求发送到移动网站,除非url变量短信在我的htaccess的文件存在重写url问题

所以对于我的整个网站我有这样的:

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

但是当我到www.mysite.co.uk/news/index.cfm &短信,我得到了完整的网站下面的ColdFusion错误:

File not found: /news/index.cfm 

调试开启我已经注意到,CGI变量PATH_TRANSLATED已经从改变

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

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

我茫然地已了解了是怎么回事?任何帮助或见解将不胜感激。

此外,我正在运行ColdFusion 8的多服务器安装,并使用为ColdFusion配置的Apache。

回答

4

看起来你想做一个外部重定向,但你的RewriteRule目前只在内部重写URL。尝试添加RL标志,以您的规则,看看是否有差别:

# 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] 

我还添加了一个RewriteCond,以确保如果你已经在移动网站上它不会重定向你,如果你的两个网站都指向同一个地方(如果他们不这样做,你可以将其删除;只是想让他们避免头痛)。

+0

非常感谢Tim。很好解释和非常及时 – 2010-07-02 14:32:09