如何忽略URL中的'en'部分-多语言网站

时间:2019-06-14 17:11:57

标签: html url redirect multilingual

我正在创建一个多语言站点,该站点使用一部分URL来确定语言,并动态使用 PHP数组向页面填充内容。我这样做是为了每种语言都有自己的网址:

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

在这种情况下的问题是,当使用 https://website.com/en/home.php 访问英语网站时,该网站尝试打开位于以下文件夹中的文件:
(root)/> zh> home.php

文件实际位于:
(root)/> home.php

打开HTML文件时是否可以“忽略” URL中的语言部分,但是无需重定向,因此用户在导航到页面时仍会看到它。

我尝试使用<base> html标记,但这没有用。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

要创建路由器,您可以按照教程here

您将特别需要更改.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显示特定页面。