2014-12-13 2 views
1

Возможно ли, чтобы Apache обрабатывал ошибки перед любым RewriteRule?Пусть Apache проверяет наличие ошибок до RewriteRule в .htaccess

У меня есть следующий:

RewriteEngine on 
RewriteRule ^(.*).(htm|html)$ /cgi-bin/processor.py?file=$1.$2 [L] 

Поэтому любые .htm файлы (л) отправляется питон скрипт. Однако, прежде чем это произойдет, я бы хотел, чтобы любые ошибки, такие как 404 для проверки. Таким образом, если я перехожу к fakeFile.html, я получаю страницу ErrorDocument 404 вместо того, чтобы обрабатывать это в моем скрипте.

Возможно ли это?

Спасибо.

ответ

1

Вы можете использовать:

# handle 404 error 
ErrorDocument 404 /404.html 

RewriteEngine on 

# rewrite only if .html file exists 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^(.+?\.html?)$ /cgi-bin/processor.py?file=$1 [L,QSA,NC] 
+1

Perfect. Благодаря! – David

+0

Добро пожаловать, рад, что это сработало. – anubhava