Как игнорировать часть en в URL - многоязычный веб-сайт - PullRequest
0 голосов
/ 14 июня 2019

Я создаю многоязычный сайт, который использует часть URL-адреса для определения языка, и динамически заполняет страницу содержимым, используя массив PHP .Я делаю так, чтобы у каждого языка был свой собственный URL:

 https://website.com/en/home.php
 https://website.com/nl/home.php

Проблема в этом случае заключается в том, что при доступе к английскому веб-сайту с использованием https://website.com/en/home.php, сайт пытается открыть файл, расположенныйв папке:
(root) /> ru> home.php

В то время как файл фактически находится по адресу:
(root) /> home.php

Можно ли "игнорировать" языковую часть в URL при открытии HTML-файла, но без перенаправления, чтобы пользователь по-прежнему видел его при переходе на страницу.

Я пытался использовать тег <base> html, это не сработало.

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 14 июня 2019

Для создания роутера вы можете следовать руководству здесь

Вам необходимо изменить файл .htaccess, чтобы он содержал

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php [QSA,L]

Это перенаправит все запросы на index.php

index.php должен содержать:

<?php

$request = $_SERVER['REDIRECT_URL'];

switch ($request) {
    case '/' :
        require __DIR__ . '/home.php';
        break;
    case '/en/home.php' :
        require __DIR__ . '/home.php';
        break;
    case '' :
        require __DIR__ . '/home.php';
        break;
    default:
        require __DIR__ . '/404.php';
        break;
    }

Таким образом, все запросы, которые перенаправляются в index.php, будут показывать определенную страницу на основе URL-адреса запроса в соответствии с тем, что вы указали в этом маршрутизаторе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...