Php 更改语言目录而不重定向到索引页
我有三种语言的网站:Php 更改语言目录而不重定向到索引页,php,file,chdir,Php,File,Chdir,我有三种语言的网站: www.mysite.com/it/FILES www.mysite.com/de/FILES www.mysite.com/fr/FILES 在网站的标题上,我有三个链接,每种语言一个。 每个链接重定向到 /language/index.php 我想将用户重定向到他正在观看的当前页面,但使用的是新语言 我试过了 __FILE__ 或 但我没有做到 谢谢大家! 在加载页面中尝试以下操作: $prefix = $_SERVER['HTTP_HOST']; $fil
www.mysite.com/it/FILES
www.mysite.com/de/FILES
www.mysite.com/fr/FILES
在网站的标题上,我有三个链接,每种语言一个。
每个链接重定向到
/language/index.php
我想将用户重定向到他正在观看的当前页面,但使用的是新语言
我试过了
__FILE__
或
但我没有做到
谢谢大家! 在加载页面中尝试以下操作:
$prefix = $_SERVER['HTTP_HOST'];
$file = explode('/', $_SERVER['PHP_SELF']);
$page = $file[count($file)-1];
if (file_exists($prefix.'/it/'.$page)) {
http_redirect($prefix.'/it/'.$page); // For Italian
}
if (file_exists($prefix.'/de/'.$page)) {
http_redirect($prefix.'/de/'.$page); // For German
}
if (file_exists($prefix.'/fr/'.$page)) {
http_redirect($prefix.'/fr/'.$page); // For French
}
在JavaScript(jQuery单击示例)中,您可以执行以下操作:
var host = document.location.hostname;
var path = window.location.href;
var filename = path.replace(/^.*[\\\/]/, '');
$('.myItalianLink').click(function(){
window.location.href = host + '/it/' + filename; // For Italian
});
console.log(host + '/it/' + filename);
产出:
http://www.mywebsite.com/it/html4.php
JavaScript方法可能更适合您的需要,因为它在用户交互(您命名的链接)的情况下更具反应性。所以您建议我使用jquery?对于php解决方案,我遇到了一个问题:重定向总是指向/it/it/page或/de/de/page或/fr/fr/page,因为语言包含在$\u服务器['SCRIPT\u NAME']中,而不是其本身,您也可以使用普通的JavaScript onClick。但您需要用户输入。在客户端这样做更好。您也可以执行新的PHP请求+重定向,但在您的情况下,这是一个可用性问题,不会带来安全风险。@user2120569 my bad;我已经将代码更新为使用
$page=$\u服务器['PHP\u SELF']代码>。此代码将为您提供所有PHP服务器变量:echo';打印($\u COOKIE);打印(美元环境);打印(美元文件);打印(美元);;打印(邮政美元);打印请求($);打印服务器($);打印(美元会话);回声'
($\u SESSION
可能不存在,有些在不使用时是空的,如$\u POST
)。与$\u服务器['PHP\u SELF']相同。我想我会使用类似于带str_replace的函数($lang),简单地用/de/或/fr/替换当前url上的/it/或者相反。我已经更新了答案。现在应该可以了。我建议您在这种情况下使用JavaScript。
http://www.mywebsite.com/it/html4.php