我希望有人可以帮助我。对于我的网站,我有一个相应的移动网站,其内容与我的完整网站相同,但显示在移动设备上。基本上我想将完整站点的所有请求发送到移动站点,除非url变量sms存在
所以在我的完整网站的htaccess文件中,我有这个:
RewriteCond %{QUERY_STRING} !sms=1 [NC]
RewriteRule ^(.*) http://mobile.mysite.co.uk/$1 [QSA,NC]
但是当我到达www.mysite.co.uk/news/index.cfm&sms时,我会在整个网站上收到以下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。
答案 0 :(得分:4)
您似乎想要进行外部重定向,但您的RewriteRule
目前只在内部重写URL。尝试在您的规则中添加R
和L
标记,看看是否会产生影响:
# 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
,以确保如果您已经在移动网站上,如果您的两个网站都指向同一个地方,则它不会重定向您(您可以删除如果他们不这样做;只是想在他们这样做的情况下为你节省头痛。