我为网站使用不同的语言。所以结构很简单:
root / => 404.php
=> template_404.php
root/subdir/ =>(language_xy)404.php
在我的htaccess文件中,我使用了重定向到
404.php
的方法,以防找不到页面。在该
404.php
中,我使用$_SERVER['REQUEST_URI']
来获取输入的地址,该地址将被回显给用户。根据默认的浏览器语言,
404.php
将与语言文件一起重定向到其subdir文件夹。就像这样:
输入的URL错误=>重定向到
404.php
=>读取URL和默认语言=>重定向到语言方向(language_xy)404.php
=>从根加载template_404.php
并回显错误的URL。现在的问题是,我想要像
example.com/langauge_xy/(language_xy)404.php
这样的干净URL。这就是为什么我不想使用$_GET
将输入的URL发送到(language_xy)404.php
的原因。我以为我可以将输入的URL保存到404.php
上的SESSION中,而只需在template_404.php
上回显即可。第一次可以使用,但是由于某种原因重新加载页面时,SESSION的内容已更改。我不知道为什么会这样。 $_SESSION['url']
仅使用一次。因此,如果有人可以给我提示如何解决此问题,我将不胜感激。
非常感谢。
最佳答案
您可以这样做,也可以创建一个语言文件,并使用一个404.php文件根据 session 中的语言提供不同的内容。
查找用户语言:detect user language in PHP - stable solution
语言切换:Am I breaking any "php good practice" in the following php array which deals with 3 (human) languages?
关于php - 404使用$ _SERVER ['REQUEST_URI'处理错误],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16415916/