angular - [htaccess]为浏览器加载 Angularjs 为机器人加载 SSR
问题描述
我想出了自己的解决方案来解决我的 SEO 和其他机器人渲染我的网络的问题(比如一些社交机器人 whatsapp 机器人、facebook 机器人、twitter 机器人等)。我使用 ejs (nodejs) 在后端创建了相同的路由,以提供带有预先呈现的元标记的 html 页面。我希望所有机器人都呈现服务器 html 文件,但对于浏览器,我想加载 Angular 应用程序。
这是我目前使用的 .htaccess 仅服务于我的 Angular 应用程序
RewriteEngine On
Options FollowSymLinks
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /#/$1 [L]
我怎样才能达到所需的结果?
解决方案
感谢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]
推荐阅读
- .net - 呼叫 ssrs 报告
- python - Python tkinter - 帧内帧导致问题
- csv - 使用 RDD 从 CSV 文件过滤数据
- go - 在 Go 中构建一个“公共静态”的字符串?
- python - 启用急切执行时如何运行并行 map_fn
- java - 如何让单个 GSON 自定义序列化程序应用于所有子类?
- python - 画布上的 Tkinter 绘图被延迟
- c# - 如何从源代码构建 CEFSharp (CefSharp.BrowserSubprocess.Core.dll)
- php - JSON编码无输出
- azure - Azure 自动化 Powershell Runbook 无法加载程序集