2016-07-18 18 views
1

Ich habe eine Website mit angularjs erstellt. Ich möchte auf eine PHP Seite umleiten, wenn Benutzer ein GoogleBot ist, und dafür füge ich einige Regeln zu htaccess Datei hinzu.htaccess Redirect-Fehler, wenn Benutzer googlebot ist

aber wenn ich von Google Bot testen diese Rolle nicht ausgeführt.

mein htaccess ist:

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 

ich erwarte, dass diese URL

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

Umleitung zu:

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

wenn Benutzer GoogleBot ist. aber es Umleitungen an

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

und durch url folgende Umleitungen an

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

, was das Problem hier ist?

Antwort

1

Diese Zeile ist falsch:

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

weil ^estate/([0-9]+)/?$ wird nichts akzeptieren, nachdem /estate/123/

Die genaue richtige Linie davon abhängig, ob /text obligatorisch oder optional ist, aber so etwas tun sollte:

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