Для начала - уберите все директивы ErrorDocument
из <IfModule mod_rewrite.c>
- в этом вообще нет необходимости.
Сейчас он говорит Apache: «используйте ErrorDocument ТОЛЬКО ЕСЛИ mod_rewrite включенMsgstr ".
Если это не работает у вас сейчас, то очень вероятно, что mod_rewrite фактически не включен.Но если вы поместите их вне блока <IfModule mod_rewrite.c>
(непосредственно перед ним), то он должен работать (пока .htaccess распознается и обрабатывается Apache):
#AuthName "Restricted Area"
#AuthType Basic
#AuthGroupFile /dev/null
#require valid-user
#<Files "/site/captcha/">
# Allow from all
#</Files>
Options +FollowSymLinks
# '400 Bad Request' error
ErrorDocument 400 /index.php?p=error&code=400
# '404 Not Found' error
ErrorDocument 404 /index.php?p=error&code=404
# '403 Forbidden' error
ErrorDocument 403 /index.php?p=error&code=403
# '401 Unauthorized' error
ErrorDocument 401 /index.php?p=error&code=401
# '500 Internal Server Error'
ErrorDocument 500 /index.php?p=error&code=500
<IfModule mod_rewrite.c>
RewriteEngine on
# Pages
RewriteRule ^home/?$ index.php [L]
</IfModule>
PS Я также изменил ваши правила перезаписи: объединил их в единое правило.