如何忽略 URL 中的 'en' 部分 - 多语言网站
How to ignore 'en' portion in URL - multi-language website
我正在创建一个多语言网站,它使用 URL 的一部分来确定语言,动态地 使用 PHP数组。我这样做是为了让每种语言都有自己的 url:
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 文件时 "ignore" URL 中的 语言部分 ,但没有重定向,因此用户仍然当他们导航到页面时会看到它。
我尝试使用 <base>
html 标签,但没有用。
如有任何帮助,我们将不胜感激!
要创建路由器,您可以按照教程进行操作 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 显示特定页面。
我正在创建一个多语言网站,它使用 URL 的一部分来确定语言,动态地 使用 PHP数组。我这样做是为了让每种语言都有自己的 url:
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 文件时 "ignore" URL 中的 语言部分 ,但没有重定向,因此用户仍然当他们导航到页面时会看到它。
我尝试使用 <base>
html 标签,但没有用。
如有任何帮助,我们将不胜感激!
要创建路由器,您可以按照教程进行操作 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 显示特定页面。