2014-10-20 108 views
1

我有一个多语言站点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,但是如果我可以从根目录中的所有设置来更好,那会更好。

回答

1

您需要使用此mod_rewrite规则在DOCUMENT_ROOT/.htaccess文件:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(en|de|fr)/ /$1/404.php [L,NC] 
0

让所有404转到404.php,然后利用$ _SERVER ['REQUEST_URI'],您可以检测到用户来自哪个语言变体,将它们放到404页面,并将它们重定向到适当的位置404.php