Переписать проблему с URL - PullRequest
2 голосов
/ 02 июля 2010

Я надеюсь, что кто-то может мне помочь. Для моего веб-сайта у меня есть соответствующий мобильный сайт, который имеет тот же контент, что и мой полный сайт, но отображает его для мобильных устройств. По сути, я хочу отправлять все запросы с полного сайта на мобильный сайт, если не существует переменной 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 с несколькими серверами и использую Apache, настроенный для ColdFusion.

1 Ответ

4 голосов
/ 02 июля 2010

Похоже, вы хотите сделать внешнее перенаправление, но ваш 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, чтобы убедиться, что он не перенаправляет вас, есливы уже находитесь на мобильном сайте, если оба ваших сайта указывают на одно и то же место (вы можете удалить его, если они этого не делают; просто хотели избавить вас от головной боли в том случае, если они это сделали).

...