2014-12-03 46 views
0

我確實有一個關於瀏覽器檢測和重定向到其他站點分別到主頁上的其他文件夾的問題。在子文件夾中瀏覽器檢測後重定向

在我的客戶的網站我已經通過一個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> 

現在,這將用戶重定向到另一個的index.html即到sfindex.html它沒有應用平滑的小部件(進一步稱爲某些功能)到它的休閒網站/鏈接。意味着Safari用戶將暫停到名爲 的目錄所有站點此文件夾不包含此特定功能。 sf表示safari,de表示德語。

所有其他瀏覽器繼續到標準文件夾。只是/德/德國

所有這些文件夾下的頁面沒有啓用此某些此功能。 目前爲止這麼好。如果用戶僅在主Webadress上啓動,則效果很好。

我要問你的幫助,現在是怎麼做的代碼/德/文件夾頁需要是,對Safari用戶總是重定向到相應的SF /德/頁面。

我試圖用上面的腳本實現它,但我總是失敗,因爲它會將用戶重定向到一個不存在的文件夾,例如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 /任何線索來解決這個問題?

非常感謝。 MacGee

回答

0

在我投入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] 
+1

如果這是更多的信息,請編輯到你的問題。 – ChrisF 2014-12-04 12:22:39

+0

請將此信息編輯到您的問題中。 – ChrisF 2014-12-04 14:42:12