例如,如果在问号之后还有另一个单词,则会重定向到主页。
问号后,只能出现lang=hy
或lang=ru
或lang=en
这个词:
https://it-center.am/?lang=hy
但是否则它应该重定向到主页。例如,不能有这样的网址:
https://it-center.am/?lang=hyyy
我应该更改.htaccess
中的内容吗?
这是languages.php的代码
define('LANGUAGE_DIR', $_SERVER['DOCUMENT_ROOT']."/language/", false);
define('TEMPLATE_DIR', $_SERVER['DOCUMENT_ROOT']."/", false);
$languages = [
"hy",
"ru",
"en",
];
session_start();
if (!isset($_SESSION['lang']) OR !isset($_GET['lang']))
{
$_SESSION['lang'] = $languages[0];
$language = $_SESSION['lang'];
}
else {
$language = $_GET['lang'];
}
include_once(LANGUAGE_DIR . $language . '.php');
$valid = array("en", "ru", "hy");
if (!in_array($_GET["lang"], $valid)) {
header("Location /index.php?lang=hy");
die();
}
答案 0 :(得分:2)
为此,我想说你需要使用.php
来处理它。我首先要定义一个有效代码列表,然后如果请求不匹配,我会重定向它。
$valid = array("en", "ru", "hy");
if (!in_array($_GET["lang"], $valid)) {
header("Location: ./?lang=en");
die();
}
答案 1 :(得分:1)
您可以在.htaccess
:
RewriteEngine on
RewriteCond %{QUERY_STRING} lang= [NC]
RewriteCond %{QUERY_STRING} !lang=(?:hy|ru|en)(?:&|$) [NC]
RewriteRule ^ https://it-center.am/? [R=301,L]