2012-04-17 2 views
0

Я создал субдомен под названием mobile для моего сайта, суетный cPanel. Я перенаправляю мобильные устройства в этот поддомен, но там есть javascript, который вызывает вызовы AJAX в фактический домен. Я структурировал эти звонки, чтобы перейти к website.com/mobile/.... Однако это не происходит, и я подозреваю, что это потому, что он ищет ... в моем /mobile, но запрос должен быть переписан в .htaccess - website.com/index.php?params=mobile/....Субдомен принимает заявки на домен

Вот .htaccess:

# redirect phones/tablets to mobile site 
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC] 
RewriteCond %{HTTP_HOST} !mobile\.website\.com [NC] 
RewriteCond %{REQUEST_URI} !^/mobile [NC] 
RewriteRule ^(.*)$ http://www.mobile.website.com/$1 [L,R=302] 

# not a file or directory 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
# website.com/home => website.com/index.php?params=home 
RewriteRule ^(.+)(\?.+)?$ index.php?params=$1 [L,QSA] 

Это работает на моей локальной машине, а не на сервере. Я создал sudomain локально через

<VirtualHost *:80> 
    DocumentRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/website/mobile" 
    ServerName mobile.website.local 
</VirtualHost> 

и она прекрасно работает: когда я иду в mobile.website.local или website.local/mobile, я получаю мобильный сайт, и когда я иду в website.local/mobile/users/login я получаю правильный вывод JSON для запроса AJAX.

Как я могу сохранить свой поддомен mobile в /mobile/, но у вас есть запросы к website.com/mobile/..., которые будут перенаправлены с последним правилом перезаписи?

Спасибо!

ответ

0

Просто добавьте конкретный редирект для/мобильного телефона, заставляя игнорировать файл или каталог заявление:

RewriteCond %{REQUEST_URI} ^/mobile [NC] 
RewriteRule ^(.+)(\?.+)?$ index.php?params=$1 [L,QSA] 

# redirect phones/tablets to mobile site 
RewriteCond %{HTTP_HOST} !mobile\.website\.com [NC] 
RewriteCond %{REQUEST_URI} !^/mobile [NC] 
RewriteCond %{QUERY_STRING} !^params=mobile(.*)$ 
RewriteRule ^(.*)$ http://www.mobile.website.com/$1 [L] 

# not a file or directory 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
# website.com/home => website.com/index.php?params=home 
RewriteRule ^(.+)(\?.+)?$ index.php?params=$1 [L,QSA] 

Все, что дайте мне знать, и я буду видеть, если я могу помочь :)

+0

Спасибо за ответ :) К сожалению, запрос все еще не проходит. Я попробовал переадресовать это еще до моих других перенаправлений, но это тоже не сработало. – Garrett

+0

Здравствуйте, я делаю некоторые тесты и, похоже, работает, вы помещаете код перед заявлением файла/каталога? Я сделаю еще несколько тестов, и я скоро отвечу вам. –

+0

Здравствуйте @Garrett, можете ли вы снова проверить файл htaccess? Я только что редактировал свой пост с новым файлом. –

Смежные вопросы