0

試圖讓我的角度應用生成的頁面將被完全由谷歌抓取,而無需使用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的路由器角度的狀態。

回答

0

它看起來像你重定向到URL#所有請求:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ #/$1 [L] 

是正確的嗎?如果是這樣,該代碼阻止了Prerender配置在每個請求上運行。

如果您使用HTML5按壓狀態下,你能刪除節,因爲你並不需要重定向到URL#。

+0

如果我刪除'#',直接訪問一個頁面,比如在瀏覽器中打開一個url'http:// myurl.com/1/state',就不會工作了,給出了404錯誤。在這種情況下,Google抓取功能給我提供了Not found錯誤。 – neptune

+0

您的index.html從哪裏獲取?看來這就是爲什麼它是404。 Prerender配置後需要一些代碼來爲所有請求提供index.html。 –

+0

我有我的index.html在http://myurl.com/1/index.html和實施pushState的網址,我有http://myurl.com/1/#/home像URL之前。 [這是](http://sigmagfx.com/1)我正在處理的網站。我認爲值得一提的是,在myroot網址中,我有一個Pico cms站點,它有自己的.htaccess。 – neptune