gpt4 book ai didi

apache - 基于浏览器语言的 404 页面与 mod_rewrite 如何

转载 作者:行者123 更新时间:2023-12-01 11:09:08 25 4
gpt4 key购买 nike

我正在尝试通过评估客户端 HTTP Accept-Language header 来生成完全基于 Apache mod_rewrite 规则的语言相关 404(还有其他错误)页面。我已经设法使用以下规则显示正确的页面(默认为英文):

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{HTTP:Accept-Language} ^es [NC]
RewriteRule (.+) /esp/error404.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule (.+) /eng/error404.php [L]

我的问题是我想保留 404 错误并且我知道重定向不允许这种类型的标志。在任何情况下,我都不能 100% 确定它是否真的值得 SEO 明智,因为最好不要有 404,但我认为它会更合乎逻辑并保持日志一致,等等,但我就是想不通如何通过 apache 和 HTTP:Accept-Language 实现。

如有任何意见,我们将不胜感激。

最佳答案

您可以使用 Apache 的默认错误处理程序来执行此操作。

应该可以像这样定义一个 ErrorDocument:

ErrorDocument 404 /parseme.php

然后对 /parseme.php 的请求进行依赖于语言的重定向,如下所示:

RewriteCond %{REQUEST_FILENAME} ^/parseme\.php$
RewriteCond %{HTTP:Accept-Language} ^es [NC]
RewriteRule (.+) /esp/error404.php [L]

RewriteCond %{REQUEST_FILENAME} ^/parseme\.php$
RewriteCond %{HTTP:Accept-Language} ^eng [NC]
RewriteRule (.+) /eng/error404.php [L]

我从未尝试过这个,但是这应该给你一个 404 标题,以及正确语言的错误页面。

关于apache - 基于浏览器语言的 404 页面与 mod_rewrite 如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2061381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com