单击链接后如何维护以前选择的语言(我使用php数组和?lang=)?
我有以下代码:单击链接后如何维护以前选择的语言(我使用php数组和?lang=)?,php,arrays,lang,Php,Arrays,Lang,我有以下代码: <html> <head> <title><?php echo $GLOBALS['L']['title']; ?></title> </head> <body> <ul id="language-selection"> <li><a h
<html>
<head>
<title><?php echo $GLOBALS['L']['title']; ?></title>
</head>
<body>
<ul id="language-selection">
<li><a href="index.php?lang=english">English</a></li>
<li><a href="index.php?lang=french">French</a></li>
</ul>
<h1><?php echo $GLOBALS['L']['h1']; ?></h1>
<p><?php echo $GLOBALS['L']['p1']; ?></p>
<ul id="language-selection">
<li><a href="about.php">About Page</a></li>
<li><a href="contact.php">Contact Page</a></li>
</ul>
</body>
</html>
换句话说,我希望URL记住?lang=
结尾。
最好的方法是什么?您需要了解如何在会话中存储信息
您需要了解如何在会话中存储信息
您必须将其附加到每个传出链接:
<li><a href="about.php<?php echo "?lang=".$GLOBALS['L']; ?>">About Page</a></li>
并在内部将它们映射到
www.example.com/about.php?lang=en
有一个初学者指南和官方文档
我不是mod_重写大师,但这对我来说很有用:
RewriteEngine on
Options +FollowSymlinks
RewriteCond %{REQUEST_URI} ^/([a-z][a-z])(/.*)?$
RewriteRule (.*) %2?lang=%1&%{QUERY_STRING}
它映射
至www.domain.com/en/about.php
/about.php?lang=en
至www.domain.com/fr/about.php
/about.php?lang=fr
至www.domain.com/es/
=通常为index.php/?lang=es
它映射两个字母的任何出现,小写
www.example.com/xy
,因此您的根目录中不应该有两个字母来处理此问题。您必须将其附加到每个传出链接:
<li><a href="about.php<?php echo "?lang=".$GLOBALS['L']; ?>">About Page</a></li>
并在内部将它们映射到
www.example.com/about.php?lang=en
有一个初学者指南和官方文档
我不是mod_重写大师,但这对我来说很有用:
RewriteEngine on
Options +FollowSymlinks
RewriteCond %{REQUEST_URI} ^/([a-z][a-z])(/.*)?$
RewriteRule (.*) %2?lang=%1&%{QUERY_STRING}
它映射
至www.domain.com/en/about.php
/about.php?lang=en
至www.domain.com/fr/about.php
/about.php?lang=fr
至www.domain.com/es/
=通常为index.php/?lang=es
它映射了两个字母的任何出现,小写
www.example.com/xy
,因此您的根级别上不应该有任何包含两个字母的目录来处理此问题。您可能希望查看并将持久选项存储在其中。如果您愿意,它的优点是允许用户将链接复制到其他人,而不必强制他们进行设置。您可能希望查看并将持久性选项存储在那里。如果您愿意,它的优点是允许用户将链接复制到其他人,而无需强制他们进行设置。您可以使用将该参数添加到URL。在输出内容之前,只需调用以下命令:
output_add_rewrite_var('lang', $language);
您可以使用将该参数添加到URL。在输出内容之前,只需调用以下命令:
output_add_rewrite_var('lang', $language);
会话不起作用,因为我可以用英语打开一个选项卡,另一个用法语打开。会话不起作用,因为我可以用英语打开一个选项卡,另一个用法语打开一个选项卡。+1是的,我的服务器启用了它。谢谢,但是我如何将教程应用到我的示例中呢?我尝试了第一个示例,URL结果如下:发生了什么事?@jano稍等,我会写一个示例。+1始终在URL中保留您的语言。您可以使用来自
/
的自动重定向,根据接受语言
标题或帐户设置选择默认语言,但在此之后,页面的每个语言版本通常应有不同的URL,以便用户可以根据需要在语言之间导航,搜索引擎可以为每种语言编制索引。你甚至不必使用重写来实现这一点;您可以使用一个简单的别名
将每种语言指向同一组PHP文件,然后让脚本嗅探$\u服务器['script\u NAME']
选择要显示的语言。+1是的,我的服务器启用了它。谢谢,但是我如何将教程应用到我的示例中呢?我尝试了第一个示例,URL结果如下:发生了什么事?@jano稍等,我会写一个示例。+1始终在URL中保留您的语言。您可以使用来自/
的自动重定向,根据接受语言
标题或帐户设置选择默认语言,但在此之后,页面的每个语言版本通常应有不同的URL,以便用户可以根据需要在语言之间导航,搜索引擎可以为每种语言编制索引。你甚至不必使用重写来实现这一点;您可以使用一个简单的别名
将每种语言指向同一组PHP文件,然后让脚本嗅探$\u服务器['script\u NAME']
选择要显示的语言。