2

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

4

1 回答 1

4

您似乎想要进行外部重定向,但您RewriteRule目前只在内部重写 URL。尝试将RandL标志添加到您的规则中,看看是否会有所不同:

# 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以确保如果您已经在移动网站上,它不会重定向您,如果您的两个网站都指向同一个地方(如果他们不这样做,您可以将其删除;只是想在他们这样做的情况下为您省去头痛)。

于 2010-07-02T14:04:30.520 回答