到目前为止,我一直在使用htaccess
重写?操作
,仅使用以下代码:
RewriteCond %{QUERY_STRING} ^action=([^&\s]+)$
RewriteRule ^(?:index\.php|)$ /%1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\s\/]+)/?$ index.php?action=$1&r [L,QSA]
现在我潜入一个多语言网站,我想检测用户的浏览器语言,并根据这些信息将他重定向到他的语言版本
要改写这个:
index.php?lang=en&action=subpage
成
en/subpage
您可以在site root.htaccess中使用如下规则:
RewriteEngine On
# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} /(?:index\.php)?\?lang=([^\s&]+)&action=([^\s&]+)\s [NC]
RewriteRule ^ /%1/%2? [R=301,L,NE]
# add default language prefix
RewriteCond %{HTTP:Accept-Language} ^([a-z]{2})- [NC]
RewriteRule ^[^/]*/?$ /%1%{REQUEST_URI} [L,R=301,NE]
# internal forward from pretty URL to actual one
RewriteRule ^([a-z]+)/([\w-]+)/?$ index.php?lang=$1&action=$2 [L,QSA,NC]
问题内容: 我使用以下PHP脚本作为网站索引。 该脚本应包括一个特定页面,具体取决于浏览器的语言(自动检测到)。 该脚本无法在所有浏览器上正常运行,因此它始终包含任何检测到的语言(问题的原因很可能是未考虑某些Accept- Language标头的问题)。 您能否建议我一个更强大的解决方案? 问题答案: 你为什么不保持它简单干净
问题内容: 我一直在尝试使用JavaScript检测浏览器的语言偏好。 如果我在中的IE中设置了浏览器语言,如何使用JavaScript读取此值? Firefox也有同样的问题。我无法检测到使用的设置。 使用 ,它通过选项卡检测完成的设置 。 我已经测试过,但均未返回第一个设置的值() 问题答案: 我认为这里的主要问题是浏览器设置实际上不会影响通过javascript获取的属性。 它们确实会影响H
问题内容: 我有一个网站,我想检测使用哪个浏览器并将其重定向。我有一个php索引,并且代码必须在php中。我发现了很多网站,但它们无法正常工作,或者它们无法检测到许多移动浏览器。您是否知道可以检测许多移动浏览器的任何好的代码或教程? 问题答案: 有我的用户代理代码: 如何使用:
问题内容: 是否可以从httpsession对象(javax.servlet.http.HttpSession)派生首选语言?可以从servletrequest中获取它,但我没有。感谢您的任何想法。斯文 问题答案: 用户的首选语言环境可以用作请求标头(“接受语言”)。它由用户的浏览器根据其首选项自动填充。然后,您可以将此信息存储在用户的会话中,并在以后适当时检索它。
问题内容: 如何使用JavaScript检测Safari浏览器?我在下面尝试过代码,它不仅可以检测Safari,还可以检测Chrome浏览器。 问题答案: 您可以轻松地使用Chrome的索引来过滤掉Chrome:
Web Storage 是一项非常重要,并且很实用的技术,因此浏览器的支持度非常高,所有的主流浏览器,包括IE8,都在一定程度上支持Web Storage。尽管如此,最好还是像往常一样,在使用前先检测浏览器是否支持Web Storage。 在Web Storage中,可以直接使用 window 对象访问特定域下存储的数据。因此,只需检测浏览器是否支持 window.localStorage 或 w