2016-12-12 3 views
1

Ich versuche Angular 1.5 App für Server-Side-Rendering für die Crawler mit Prerender-Service einzurichten.Angular mit Prerender (.htaccess Einstellungen)

Und alles funktioniert gut für die inneren Seiten, aber es gibt ein Problem mit der Darstellung der Hauptseite - der Crawler sieht die 404-Seite anstelle der Hauptseite.

Ich nehme es ein Problem mit einigen anderen Regeln in meinem .htaccess ist - mit Ausnahme der Regeln für die Prerender, verwende ich zwei andere Regeln für alle Seiten:

  • Umschreiben Urls ohne Schrägstriche auf die Urls Hinter mit hinteren Schrägstriche
  • Urls mit www auf den Urls ohne www Umschreiben

Wird für alle Tipps werden zu schätzen wissen!

Hier ist meine .htaccess-Datei für Apache serveer

RequestHeader set X-Prerender-Token "MyToken" 

    RewriteEngine On 

    RewriteCond %{HTTP_HOST} ^www.example.com$ [NC] 
    RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] 


    # If an existing asset or directory is requested go to it as it is 
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR] 
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d 
    RewriteRule^- [L] 

    RewriteCond %{REQUEST_URI} ^/$ 
    RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/?(.*)$ 
    RewriteRule ^(.*)$ /snapshots/%1? [NC,L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*[^/])$ /$1/ [L,R=301] 

    <IfModule mod_proxy_http.c> 
     RewriteCond %{HTTP_USER_AGENT} Googlebot|bingbot|Googlebot-Mobile|Baiduspider|Yahoo|YahooSeeker|DoCoMo|Twitterbot|TweetmemeBot|Twikle|Netseer|Daumoa|SeznamBot|Ezooms|MSNBot|Exabot|MJ12bot|sogou\sspider|YandexBot|bitlybot|ia_archiver|proximic|spbot|ChangeDetection|NaverBot|MetaJobBot|magpie-crawler|Genieo\sWeb\sfilter|Qualidator.com\sBot|Woko|Vagabondo|360Spider|ExB\sLanguage\sCrawler|AddThis.com|aiHitBot|Spinn3r|BingPreview|GrapeshotCrawler|CareerBot|ZumBot|ShopWiki|bixocrawler|uMBot|sistrix|linkdexbot|AhrefsBot|archive.org_bot|SeoCheckBot|TurnitinBot|VoilaBot|SearchmetricsBot|Butterfly|Yahoo!|Plukkie|yacybot|trendictionbot|UASlinkChecker|Blekkobot|Wotbox|YioopBot|meanpathbot|TinEye|LuminateBot|FyberSpider|Infohelfer|linkdex.com|Curious\sGeorge|Fetch-Guess|ichiro|MojeekBot|SBSearch|WebThumbnail|socialbm_bot|SemrushBot|Vedma|alexa\ssite\saudit|SEOkicks-Robot|Browsershots|BLEXBot|woriobot|AMZNKAssocBot|Speedy|oBot|HostTracker|OpenWebSpider|WBSearchBot|FacebookExternalHit [NC,OR] 
     RewriteCond %{QUERY_STRING} _escaped_fragment_ 

     # Only proxy the request to Prerender if it's a request for HTML 
     RewriteRule ^(?!.*?(\.js|\.css|\.xml|\.less|\.png|\.jpg|\.jpeg|\.gif|\.pdf|\.doc|\.txt|\.ico|\.rss|\.zip|\.mp3|\.rar|\.exe|\.wmv|\.doc|\.avi|\.ppt|\.mpg|\.mpeg|\.tif|\.wav|\.mov|\.psd|\.ai|\.xls|\.mp4|\.m4a|\.swf|\.dat|\.dmg|\.iso|\.flv|\.m4v|\.torrent|\.ttf|\.woff))(.*) http://service.prerender.io/http://example.com/$2 [P,L] 
    </IfModule> 

    # If the requested resource doesn't exist, use index.html 
    RewriteRule^/index.html 

Antwort

0

Sie diesen Abschnitt haben:

RewriteCond %{REQUEST_URI} ^/$ 
    RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/?(.*)$ 
    RewriteRule ^(.*)$ /snapshots/%1? [NC,L] 

Welche Dateien von Ihrem/Schnappschüsse/Verzeichnis zu dienen versuchen, wenn _escaped_fragment_ in der URL . Das hat nichts mit Prerender.io zu tun, deshalb möchten Sie diesen Abschnitt wahrscheinlich entfernen, da dies die Ursache für den 404 sein könnte. Sie überprüfen Googlebot und Bingbot auch von ihren Benutzeragenten ist eine schlechte Idee, weil sie dich für die Tarnung bestrafen könnten.