.htaccess 404个不同的错误页面
问题描述:
我有一个多语言站点example.com/en/
和/fr/
,/de/
等。.htaccess 404个不同的错误页面
现在我想要有一个默认的错误页面,例如,在example.com/en/404.php
(在所有语言目录中)
如果有人打电话example.com/de/site-not-existing
我想要显示example.com/de/404.php
。这应该也可用/en/
和/fr/
我的问题是,我不能在我的.htaccess中使用ErrorDocument
,因为它只能设置一个ErrorDocument。
有没有另一种解决方案?我想在每个语言目录中创建一个htaccess,但是如果我可以从根目录中的所有设置来更好,那会更好。
答
您需要使用此mod_rewrite
规则在DOCUMENT_ROOT/.htaccess
文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(en|de|fr)/ /$1/404.php [L,NC]
答
让所有404转到404.php,然后利用$ _SERVER ['REQUEST_URI'],您可以检测到用户来自哪个语言变体,将它们放到404页面,并将它们重定向到适当的位置404.php