2016-02-05 23 views
0

我擁有一個Angular應用程序和一個Apache服務器。爲什麼prerender.io服務沒有達到這個配置?

我設置<meta name="fragment" content="!" /><head>部分和$locationProvider.html5Mode(true);

在Apache服務器上我.htaccess文件,我添加了這部分:

<IfModule mod_headers.c> 
    RequestHeader set X-Prerender-Token "My_Token" 
</IfModule> 

<IfModule mod_rewrite.c> 
    Options +FollowSymlinks 
    RewriteEngine on 

      # Don't rewrite files or directories 
      RewriteCond %{REQUEST_FILENAME} -f [OR] 
      RewriteCond %{REQUEST_FILENAME} -d 
      RewriteRule^- [L] 

      <IfModule mod_proxy_http.c> 
       RewriteCond %{HTTP_USER_AGENT} baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\ link\ preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator [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> 
      # Rewrite everything else to index.html to allow html5 state links 
      RewriteRule^index.html [L] 
</IfModule> 

然而,當我運行以下命令:
curl http://example.com?_escaped_fragment_=
我沒有得到prerendered文件。

聽起來Prerender的服務根本沒有被觸發。

我錯過了一些配置嗎?

回答

1

你可能會從這裏服務索引:

 RewriteCond %{REQUEST_FILENAME} -f [OR] 
     RewriteCond %{REQUEST_FILENAME} -d 
     RewriteRule^- [L] 

你可以嘗試移動預渲染的配置比部分高?

+0

當然有關於在htaccess中設置權限的問題。我檢查。這是'[P,L]'序列中的'P'標誌導致了403錯誤。這是一個已知的問題嗎? – Mik378

+0

相關問題我剛纔要求:http://stackoverflow.com/questions/35224988/my-server-doesnt-allow-a-proxy-to-service-prerender-io#35224988 – Mik378

相關問題