2017-02-13 8 views
1

Существует сайт mysite.com и субдомен m.mysite.com. Для перенаправления для мобильных устройств от mysite.com к m.mysite.com Я использую следующий код в HTAccess:Предотвратить перенаправление на мобильную версию для Google bot

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteBase/

# Check if this is the noredirect query string 
RewriteCond %{QUERY_STRING} (^|&)m=0(&|$) 
# Set a cookie, and skip the next rule 
RewriteRule^- [CO=mredir:0:mysite.com] 

RewriteCond %{HTTP:x-wap-profile} !^$ [OR] 
RewriteCond %{HTTP:Profile}  !^$ [OR] 
RewriteCond %{HTTP_USER_AGENT} "acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-" [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} "dang|doco|eric|hipt|inno|ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-" [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} "maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv" [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} "palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany" [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} "sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo" [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} "teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi" [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} "wapp|wapr|webc|winw|winw|xda|xda-" [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} "up.browser|up.link|windowssce|iemobile|mini|mmp" [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} "symbian|midp|wap|phone|pocket|mobile|pda|psp" [NC] 
RewriteCond %{HTTP_USER_AGENT} !macintosh [NC] 

# Check if we're not already on the mobile site 
RewriteCond %{HTTP_HOST}   !^m\. 
# Can not read and write cookie in same request, must duplicate condition 
RewriteCond %{QUERY_STRING} !(^|&)m=0(&|$) 

# Check to make sure we haven't set the cookie before 
RewriteCond %{HTTP_COOKIE}  !^.*mredir=0.*$ [NC] 

# Now redirect to the mobile site 
RewriteRule^http://m.mysite.com%{REQUEST_URI} [R,L] 
</IfModule> 

Теперь проблема заключается в том, что образы размещенных на mysite.com но не m.mysite.com, и вставленные в сообщение электронной почты, не загружаются в Gmail. Вероятно, потому что бот Google перенаправляется на m.mysite.com. Временное решение состояло в том, чтобы размещать изображения для электронной почты на m.mysite.com.

Я добавил еще одно условие для RewriteCond, после RewriteCond %{HTTP_USER_AGENT} !macintosh [NC]: RewriteCond %{HTTP_USER_AGENT} !^googlebot [NC] Но это не похоже на работу. Если изображение отсутствует в m.mysite.com, оно недоступно в Gmail.

UPD:

Это строка, решить мою проблему: RewriteCond %{HTTP_USER_AGENT} !^macintosh|GoogleImageProxy [NC]

Благодаря Абхишек гуджар за помощью.

ответ

2

Попробуйте ниже условия в вашем правиле прокомментировать существующие аналогичные условия для тестирования.

RewriteCond %{HTTP_USER_AGENT} "symbian|midp|wap|phone|pocket|mobile|pda|psp" [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} !^macintosh|Googlebot [NC] 
+0

Не работает :(Может быть, бот, который захватывает изображения для электронной почты имеет другое имя, а не Googlebot. – Julia

+0

Проверьте здесь также имя агента https://support.google.com/webmasters/answer/1061943?hl=en –

+0

Когда я изменил 'Googlebot' на' Google', я получил это сработало. – Julia