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



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

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

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

虽然文件实际位于:
(根(/>家.php

是否可以

在打开 HTML 文件时"忽略"URL 中的语言部分,但不重定向,以便用户在导航到页面时仍然看到它。

我尝试使用 <base> html 标签,这不起作用。

任何帮助将不胜感激!

要创建路由器,您可以按照此处的教程进行操作

您特别需要更改您的 .htaccess 文件以包含

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

这会将所有请求重定向到索引.php

索引.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 显示特定页面。

最新更新