2016-07-18 3 views
1

J'ai un site Web créé avec angularjs. Je veux rediriger vers une page PHP lorsque l'utilisateur est un GoogleBot et pour cela, j'ajouter quelques règles au fichier htaccess. Mais quand je teste google bot, ce rôle ne s'exécute pas.htaccess erreur de redirection lorsque l'utilisateur est googlebot

mon htaccess est:

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 

Je pense que cette url

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

à redirect:

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

lorsque l'utilisateur est GoogleBot. mais il redirige vers

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

et par adresse suivante redirige vers

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

quel est le problème ici?

Répondre

1

Cette ligne est faux:

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

parce ^estate/([0-9]+)/?$ n'accepteront quoi que ce soit après /estate/123/

La ligne correcte exacte dépend si /text est obligatoire ou facultative, mais quelque chose comme ceci devrait faire:

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