試圖讓我的角度應用生成的頁面將被完全由谷歌抓取,而無需使用HashBangs #!
。於是,我產生pushState的網址:谷歌爬蟲沒有看到分段的角產生
$locationProvider.html5Mode(true);
$locationProvider.hashPrefix('!');
添加到應用程序的配置,並
<base href="/hockey-att/">
<meta name="fragment" content="!">
到HTML頭。
而且我有這個在.htaccess
:
RewriteEngine on
RewriteBase /1/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ #/$1 [L]
<IfModule mod_headers.c>
RequestHeader set X-Prerender-Token "prerendertoken"
</IfModule>
<IfModule mod_rewrite.c>
<IfModule mod_proxy_http.c>
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} baiduspider|googlebot|googlebot-mobile|bingbot|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\ link\ preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator [NC,OR]
RewriteCond %{QUERY_STRING} _escaped_fragment_=(\%2F|/)_(._)
# 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://%{HTTP_HOST}/$2 [P,L]
</IfModule>
</IfModule>
我在子文件夾1
的應用程序,並在.htaccess中的RequestHeader set X-Prerender-Token
部分設置爲prerender.io令牌。
,而新網址的應用程序是可以正常使用,並且使用prerender.io來渲染頁面。該網頁是分段的,並沒有任何問題訪問通過http://service.prerender.io/ {{http://myurl.com/page}}
我的問題是,是,谷歌爬蟲無法訪問分段頁面。嘗試通過Search Console的Google抓取方式將?_escaped_fragment_=
添加到抓取的網址中。但它仍然在源代碼中獲得帶有角度指令的原始頁面。
我覺得我缺少在.htaccess的東西,但我不知道是什麼。
使用UI的路由器角度的狀態。
如果我刪除'#',直接訪問一個頁面,比如在瀏覽器中打開一個url'http:// myurl.com/1/state',就不會工作了,給出了404錯誤。在這種情況下,Google抓取功能給我提供了Not found錯誤。 – neptune
您的index.html從哪裏獲取?看來這就是爲什麼它是404。 Prerender配置後需要一些代碼來爲所有請求提供index.html。 –
我有我的index.html在http://myurl.com/1/index.html和實施pushState的網址,我有http://myurl.com/1/#/home像URL之前。 [這是](http://sigmagfx.com/1)我正在處理的網站。我認爲值得一提的是,在myroot網址中,我有一個Pico cms站點,它有自己的.htaccess。 – neptune