Обычно я веду запись в сеансе для языка, но я хочу вместо того, чтобы хранить его в сеансе mysite.com / tr mysite.com / en mysite.com / ar Я хочу это сделать, но когда я ввожу mysite.com / tr , я застреваю в приложении с ошибкой 404.
mysite. com / tr / blog
mysite.com / en / blog
mysite.com / ar / blog
<div class="topbar-dropdown">
<div class="title" id="language">
<a href="lang?lang=tr"><img src="images/tr.png"></a>
<a href="lang?lang=en"><img src="images/en.png"></a>
<a href="lang?lang=ar"><img src="images/ar.png"></a>
</div>
</div>
приложение / контроллер / язык. php
$lang = strip_tags($_GET['lang']);
if ($lang == "tr" || $lang == "en" || $lang == "ar") {
$_SESSION['language'] = $lang;
header('Location:' . $_SERVER['HTTP_REFERER']);
}else {
header('Location:' . $_SERVER['HTTP_REFERER']);
}
.htaccess
RewriteEngine On
RewriteRule ^([a-z0-9-]+)/([a-z0-9-]+)$ index.php?category=$1&service=$2 [QSA]
RewriteRule ^([a-zA-Z0-9-_/]+)$ index.php [QSA]
приложение . php
function controller($controllerName)
{
$controllerName = strtolower($controllerName);
return PATH . '/app/controller/' . $controllerName . '.php';
}
function view($viewName)
{
return PATH . '/app/view/'. $viewName . '.php';
}
function route($index)
{
global $route;
return isset($route[$index]) ? $route[$index] : false;
}
if (!file_exists(controller(route(0)))) {
$route[0] = '404';
}
индекс. php
$routeExplode = explode('?', $_SERVER['REQUEST_URI']);
$route = array_values(array_filter(explode('/', $routeExplode[0])));
if (SUBFOLDER_NAME != '/') {
array_shift($route);
}
if (!route(0)) {
$route[0] = 'index';
}
конфигурация php
define('PATH', realpath('.'));
define('SUBFOLDER_NAME', dirname($_SERVER['SCRIPT_NAME']));
define('URL', 'http://' . $_SERVER['SERVER_NAME'] . (SUBFOLDER_NAME == '/' ? null : SUBFOLDER_NAME));