ErrorDocument 404 для многоязычного сайта
Добрый день всем, я столкнулся с небольшой проблемой, которая вызывает конфликт на моем сайте. например, когда я на этой странице / en / pagenotexists / как я могу просто сослаться на /en/404.php? Я использую следующую директиву в моем.htaccess:
ErrorDocument 404 /404.php
Я попробовал это решение, но не сработало совсем:/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([a-z]{2})/ /$1/404.php [R=404,L]
Большое спасибо за вашу помощь
2 ответа
Решение
Чтобы показать содержание ланг конкретных 404.php
с правильным 404
Код состояния вы можете использовать это внутреннее правило перезаписи:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]{2})/ $1/404.php [L]
Тогда ваш /en/404.php
как это:
<?php
// return correct 404 status code
http_response_code(404);
// rest of the 404 handler content
?>
Вам необходимо удалить R=404:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([a-z]{2})/ /$1/404.php [R,L]
В противном случае правило перенаправит запрос на страницу 404 по умолчанию вместо места назначения правила.