3

カスタム404エラー文書を設定したいのですが、問題があります!Apache "ファイルが見つかりません。"エラー文書

まず、私は私の.htaccessで2 RewriteRulesあります

RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)/?$ /$2/$3.php?lang=$1 [L] 
RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)/([^/.]+)/?$ /$2/$3/$4.php?lang=$1 [L] 

をだから私のURLは次のようになります/デド/ページ/その他/ものと/page/other/stuff.php?langをオープンしまし=デド

今では私自身のエラー文書を設定してみましょう:例えば、「/デド/ページ/その他/」」に誤りがあった場合 のErrorDocument 404 /404.php

は/ de-de/wrong/page/"エラー文書が成功しました。しかし、「stuff」ではなく「wrong-stuff」など、PHPファイル名に間違いがあると、「File not found」というメッセージしか表示されません。私のエラー文書はありません。

どうしたのですか?それを修正するために私は何ができますか?

ありがとうございました!

AuthType Basic 
AuthName "Password Protected Area" 
AuthUserFile /var/www/vhosts/<domain>/development/tests/demo.<domain>/.htpasswd 
Require valid-user 

<IfModule mod_rewrite.c> 
    RewriteEngine on   
    RewriteCond %{HTTPS} !=on 
    RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,QSA] 
</IfModule> 



RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)/?$ /$2/$3.php?lang=$1 [L] 
RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)/([^/.]+)/?$ /$2/$3/$4.php?lang=$1 [L] 

ErrorDocument 404 /404.php 

Apacheのエラーログ:

[404] GET /de-de/support/support/fdfssdf HTTP/1.0 
AH01071: Got error 'Primary script unknown\n' 

答えて

0

使用RewriteCond PHPファイルが存在するかどうかを確認するには:

RewriteCond %{REQUEST_URI} ^/([^/.]+)/([^/.]+)/([^/.]+)/?$ 
RewriteCond %{DOCUMENT_ROOT}/%2/%3.php -f 
RewriteRule^/%2/%3.php?lang=%1 [L] 

RewriteCond %{REQUEST_URI} ^/([^/.]+)/([^/.]+)/([^/.]+)/([^/.]+)/?$ 
RewriteCond %{DOCUMENT_ROOT}/%2/%3/%4.php -f 
RewriteRule^/%2/%3/%4.php?lang=%1 [L] 
関連する問題