.htaccess 重写url问题

.htaccess 重写url问题,.htaccess,coldfusion,jrun,.htaccess,Coldfusion,Jrun,我希望有人能帮助我。对于我的网站,我有一个相应的移动网站,该网站的内容与我的完整网站相同,但为移动设备显示。基本上我想把所有的请求从完整的站点发送到移动站点,除非url变量sms存在 因此,在我的完整站点的htaccess文件中,我有以下内容: RewriteCond %{QUERY_STRING} !sms=1 [NC] RewriteRule ^(.*) http://mobile.mysite.co.uk/$1 [QSA,NC] 但当我访问www.mysit

我希望有人能帮助我。对于我的网站,我有一个相应的移动网站,该网站的内容与我的完整网站相同,但为移动设备显示。基本上我想把所有的请求从完整的站点发送到移动站点,除非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_已从

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

我不知道发生了什么事?任何帮助或见解都将不胜感激


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

您似乎希望进行外部重定向,但您的
重写规则目前仅在内部重写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
,以确保如果您已经在移动站点上,当您的两个站点都指向同一个位置时,它不会重定向您(如果它们没有指向同一个位置,您可以将其删除;只是想让您在他们这样做的情况下避免头痛)。

非常感谢Tim。解释得很好,也很及时
# 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]