2014-10-20 2 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/

моя проблема в том, что я не могу использовать ErrorDocument в моем .htaccess, потому что можно установить только один 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