prerender.io に問題があります。localhost で node/express を使用している場合は問題なく動作しますが、Google アプリ エンジンで Java ( https://github.com/greengerong/prerender-java/ )で動作させようとすると、自動的に再ルーティングされます.
これをブラウザに書き込んで Enter キーを押すと、 http://www.example.com/?_escaped_fragment_=/browse/761238167868/
http://www.example.com/?_escaped_fragment_=/browse/761238167868#!/browseに自動的にリダイレクトされ ます
app.js には次のものがあります。
module.config(['$routeProvider','$locationProvider', function($routeProvider, $locationProvider) {
$routeProvider.when('/browse', {
templateUrl: 'views/browse.html'
//a lot of .when() ....
}).otherwise({redirectTo: '/browse'});
ノード/エクスプレスで問題なく動作するため、アプリエンジンサーバーまたはミドルウェアのインストールに問題があると思います。
アプリ エンジンがハッシュバング (#!) などを処理するように何かを書き直す必要がありますか?
これが私のweb.xmlです:
<filter>
<filter-name>prerender</filter-name>
<filter-class>com.github.greengerong.PreRenderSEOFilter</filter-class>
<init-param>
<param-name>crawlerUserAgents</param-name>
<param-value>FacebookExternalHit</param-value>
</init-param>
<init-param>
<param-name>crawlerUserAgents</param-name>
<param-value>facebookexternalhit</param-value>
</init-param>
<init-param>
<param-name>crawlerUserAgents</param-name>
<param-value>facebookexternalhit/1.0</param-value>
</init-param>
<init-param>
<param-name>crawlerUserAgents</param-name>
<param-value>facebookexternalhit/1.1</param-value>
</init-param>
<init-param>
<param-name>crawlerUserAgents</param-name>
<param-value>Facebot</param-value>
</init-param>
<init-param>
<param-name>prerenderToken</param-name>
<param-value>mytoken</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>prerender</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>