2013-08-28 3 views
2
подъезд

В моей .htaccess я следующеестраницы ошибок не быть непосредственно

Тогдашний PHP скрипт берет пользователя на соответствующей странице/отображает соответствующий текст

ErrorDocument 400 /error.php?e=400 
ErrorDocument 401 /error.php?e=401 
ErrorDocument 403 /error.php?e=403 
ErrorDocument 404 /error.php?e=404 
ErrorDocument 500 /error.php?e=500 
ErrorDocument 503 /error.php?e=503 

Для некоторых из Я пытаюсь отправить автоматическое письмо.

1) Как я могу предотвратить страницу от доступа непосредственно, если не из апач, например, просто кто-то печатает error.php?e=503

2) Как я могу получить последний URL посетил (URL-адрес, который вызвал ошибку?

Благодаря

ответ

2

(1) Включение mod_rewrite и .htaccess через httpd.conf, а затем поместить этот код в .htaccess под DOCUMENT_ROOT каталоге:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

ErrorDocument 400 /error.php?e=400 
ErrorDocument 401 /error.php?e=401 
ErrorDocument 403 /error.php?e=403 
ErrorDocument 404 /error.php?e=404 
ErrorDocument 500 /error.php?e=500 
ErrorDocument 503 /error.php?e=503 

# block direct access to /error.php 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+error\.php[\s?] [NC] 
RewriteRule^- [F] 

(2) Внутри /error.php доступа к оригинальным URI, используя:

$_SERVER["REQUEST_URI"]; 
Смежные вопросы