0

ホスティング (GoDaddy) でエラー ドキュメントの操作に問題があります。

これが私のhtaccessコンテンツです:

AddHandler x-httpd-php5-4 .php

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?route=$1 [L,QSA,NE]

ErrorDocument 404 /error/NotFound
ErrorDocument 403 /error/Forbidden

RedirectMatch ^/\+(.*)$ http://plus.google.com/[my_profile]


#Options All -Indexes
DirectoryIndex index.php
AddDefaultCharset UTF-8
DefaultLanguage es-PE

SetEnvIfNoCase User-Agent .*google.* search_robot
SetEnvIfNoCase User-Agent .*yahoo.* search_robot
SetEnvIfNoCase User-Agent .*bot.* search_robot
[...]
SetEnvIfNoCase User-Agent “(Ubuntu-feisty)$” bad_bot

Order Deny,Allow
Deny from env=bad_bot
#Deny from All
Allow from env=search_robot

<ifModule mod_gzip.c>
   [...]
</ifModule>
<FilesMatch ".(ttf|otf|eot|woff)$">
  <IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
  </IfModule>
</FilesMatch>
#COUNTRY_BLOCK_START 
<Limit GET HEAD POST>
order deny,allow
allow from [ip_range]
deny from all
</Limit>

このすべてで、カスタム エラー ページが機能しません。

4

2 に答える 2

0

.html、.php、またはエラー ファイルの拡張子を追加してみてください。

ErrorDocument 404 /error/NotFound(.html)
ErrorDocument 403 /error/Forbidden(.html)

または、.htaccess ファイルを使用してファイル拡張子が削除されている場合は、スラッシュを追加します

ErrorDocument 404 /error/NotFound/
ErrorDocument 403 /error/Forbidden/
于 2013-10-22T16:49:41.507 に答える
0

ルーティングは、存在しないファイルに対するすべてのリクエストを処理しています (これにより 404 がトリガーされます)。必要なことは、ルーティング スクリプト ( index.php) で、ルートが存在しない場合を探し、そこからエラー ドキュメントを返すことです。

これらの条件のため:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

通常は 404 エラーに該当するものはすべてキャッチされ、index.phpスクリプトにルーティングされます。

于 2013-10-22T16:51:36.013 に答える