[htaccess]为浏览器加载Angularjs,为机器人加载SSR

时间:2018-07-17 14:48:36

标签: angular .htaccess serverside-rendering

我想出了自己的解决方案来解决我的SEO和其他渲染我的Web机器人的问题(例如某些社交机器人whatsapp bot,facebook bot,twitter bot等)。我在后端使用ejs(nodejs)创建了相同的路由,以提供带有预渲染的元标记的html页面。我希望所有漫游器都呈现服务器html文件,但对于浏览器,我想加载angular应用程序。

这是我目前仅用于为我的角度应用程序提供服务器的.htaccess

RewriteEngine On 
Options FollowSymLinks

RewriteBase /

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

我如何获得所需的结果?

1 个答案:

答案 0 :(得分:0)

由于vinceMeens,我可以使用以下htaccess解决我的问题。

RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    # Go to it as is
    RewriteRule ^.*$ - [NC,L]

    RewriteCond %{HTTP_USER_AGENT} baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\ link\ preview|showyoubot|Whatsapp|whatsapp|outbrain|pinterest|googlebot|bingbot|yandex|showyoubot|outbrain|slackbot|vkShare|W3C_Validator  [NC,OR]
    RewriteCond %{REQUEST_URI} "/api/" [NC,OR]
    RewriteCond %{QUERY_STRING} _escaped_fragment_

    RewriteRule ^(.*)$ index.php?$1 [L,QSA]

    RewriteRule ^(.*)$ /#/$1 [L]