2016-07-18 6 views
1

У меня есть веб-сайт, созданный с помощью angularjs. Я хочу перенаправить на страницу PHP, когда пользователь является GoogleBot, и для этого я добавляю некоторые правила в файл htaccess.htaccess ошибка перенаправления при использовании googlebot

, но когда я тестирую из бота Google, эта роль не выполняется.

мой htaccess является:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^my-site.com [NC] 
RewriteRule ^(.*)$ http://www.my-site.com/$1 [L,R=301] 
RewriteRule ^(panel|lists)($|/) - [L] 
RewriteBase/
RewriteCond %{HTTP_USER_AGENT} (googlebot|InfoSeek|msnbot|Surp) [NC] 
RewriteRule ^estate/([0-9]+)/?$ http://www.my-site.com/static-estate.php?id=$1 [NC,L,QSA] 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{QUERY_STRING} !ajax 
RewriteRule ^(.*)$ /#!/$1 [R=301,L,NE] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 


RedirectMatch 301 /%{REQUEST_FILENAME}/(.*) #!/%{REQUEST_FILENAME}/$1 

я ожидаю, что этот URL

http://www.my-site.com/estate/123/text 

редирект:

http://www.my-site.com/static-estate.php?id=123 

когда пользователь GoogleBot. но он перенаправляет на

http://www.my-site.com/#!/estate/123/text 

и следуя URL перенаправляет

http://www.my-site.com/ 

, что это проблема?

ответ

1

Эта линия является неправильным:

RewriteRule ^estate/([0-9]+)/?$ http://www.my-site.com/static-estate.php?id=$1 [NC,L,QSA] 

потому что ^estate/([0-9]+)/?$ ничего не будет принимать после /estate/123/

Точная правильная линия зависит от того, /text является необязательной, но что-то вроде этого нужно сделать:

RewriteRule ^estate/([0-9]+)(/?|/[a-zA-Z0-9]*)/?$ http://www.example.com/static-estate.php?id=$1 [NC,L,QSA]