在子文件夹中检测到浏览器后重定向

Redirection after browser detection in subfolders

本文关键字:浏览器 重定向 检测 文件夹      更新时间:2023-09-26

我确实有一个关于浏览器检测和重定向到其他站点分别到主页上其他文件夹的问题。

在我的客户网站上,我通过 html 元素插入了这个脚本:

<script>
var ua = navigator.userAgent.toLowerCase(); 
if (ua.indexOf('safari')!=-1){ 
   if(ua.indexOf('chrome')  > -1){
   }else{
   window.location.href = "sfindex.html" // saf
 }
}
</script>

现在,这会将用户重定向到另一个索引.html即 sfindex.html它没有将更平滑的小部件(进一步称为某些功能(应用于其休耕站点/链接。意味着 Safari 用户将休耕到名为所有站点此文件夹不包含此特定功能。sf 表示野生动物园,de 表示德语。

所有其他浏览器将继续使用标准文件夹。只是 /de/ 为德语

此文件夹下的所有页面都启用了此功能。目前为止,一切都好。如果用户仅在主网址上启动,则效果很好。

我现在向您寻求帮助的是 /de/文件夹页面中的代码需要如何,以便始终将 safari 用户重定向到相应的 sf/de/ 页面。

我尝试使用上面的脚本来实现它,但我总是失败,因为它会将用户重定向到不存在的文件夹,例如 sf/sf/意味着它总是再次添加子文件夹或将其排除在其他配置中。

我也试过这个:

RewriteEngine on 
# Add /sf/ at the beginning, for safari user
RewriteCond %{HTTP_USER_AGENT} .*safari [NC]
RewriteCond %{REQUEST_FILENAME} '.html?$ [NC]
RewriteCond %{REQUEST_URI} !^/sf/ [NC]
RewriteRule ^(.*)$ /sf/$1   [R=302,L]
# Delete /sf/ for normal user
RewriteCond %{HTTP_USER_AGENT} !.*safari [NC]  
RewriteRule ^sf/(.*)$ /$1   [NC,R=302,L]

但是htaccess文件中的问题是它在Chrome和Opera中不起作用。它将这些用户重定向到Safari子文件夹/sf/有什么线索可以解决这个问题吗?

非常感谢。麦基

在我放入htaccess文件的主文件夹中:

RewriteEngine on 
# Add /sf/ at the beginning, for safari user
RewriteCond %{HTTP_USER_AGENT} .*safari [NC]
RewriteCond %{REQUEST_FILENAME} '.html?$ [NC]
RewriteCond %{REQUEST_URI} !^/sf/ [NC]
RewriteRule ^(.*)$ /sf/$1   [R=302,L]
# Delete /sf/ for normal user
RewriteCond %{HTTP_USER_AGENT} !.*safari [NC]  
RewriteRule ^sf/(.*)$ /$1   [NC,R=302,L]