在子文件夹中检测到浏览器后重定向
Redirection after browser detection in subfolders
我确实有一个关于浏览器检测和重定向到其他站点分别到主页上其他文件夹的问题。
在我的客户网站上,我通过 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]
相关文章:
- 重定向时角度刷新浏览器
- 防止从浏览器到应用商店的不需要的重定向
- 将用户重定向到 Windows 8 中的桌面浏览器
- 什么'这是重定向不受支持的浏览器的最简单方法
- 按下浏览器后退按钮时将用户重定向到其他页面
- 从chrome浏览器网址打开应用程序或使用javascript重定向到Google Play
- AngularJS仅在浏览器的后退按钮上重定向路由
- 在所有浏览器上执行没有扩展名.js外部脚本重定向
- 弹出窗口重定向在IE中不起作用,但在其他浏览器中可以
- 让 Chrome 和 Safari 浏览器在重定向后显示缓存的页面
- 在子文件夹中检测到浏览器后重定向
- 火狐浏览器拖放重定向停止JQUERY
- 浏览器检测和重定向
- 重定向至document.ready在android浏览器中的另一个页面
- 当网站在非flash浏览器中打开时,重定向至html页面
- 安卓webview本地html自动重定向到浏览器
- 重定向除Chrome外所有浏览器中的javascript失败
- 如何停止浏览器转发按钮重定向到页面
- 我的网站移动版应该使用什么?jquery mobile/CS3页面媒体/通过jscript检测浏览器大小或重定向到新页面
- Web浏览器-重定向F1(不总是工作)