Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Added USE_FLAT_PAGES setting, which defaults to True.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@782 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit c3fa47edb85fa0b3d77a3ca864990d6b5dba3ff0 1 parent 16f9b08
@adrianholovaty adrianholovaty authored
Showing with 19 additions and 18 deletions.
  1. +3 −0  django/conf/global_settings.py
  2. +16 −18 django/middleware/common.py
View
3  django/conf/global_settings.py
@@ -100,6 +100,9 @@
# is an admin.
ADMIN_FOR = []
+# Whether to check the flat-pages table as a last resort for all 404 errors.
+USE_FLAT_PAGES = True
+
# 404s that may be ignored.
IGNORABLE_404_STARTS = ('/cgi-bin/', '/_vti_bin', '/_vti_inf')
IGNORABLE_404_ENDS = ('mail.pl', 'mailform.pl', 'mail.cgi', 'mailform.cgi', 'favicon.ico', '.php')
View
34 django/middleware/common.py
@@ -54,29 +54,27 @@ def process_request(self, request):
return None
def process_response(self, request, response):
- """
- Check for a flatfile (for 404s) and calculate the Etag, if needed.
- """
-
- # If this was a 404, check for a flat file
+ "Check for a flat page (for 404s) and calculate the Etag, if needed."
if response.status_code == 404:
- try:
- response = flat_file(request, request.path)
- except exceptions.Http404:
+ if settings.USE_FLAT_PAGES:
+ try:
+ return flat_file(request, request.path)
+ except exceptions.Http404:
+ pass
+
+ if settings.SEND_BROKEN_LINK_EMAILS:
# If the referrer was from an internal link or a non-search-engine site,
# send a note to the managers.
- if settings.SEND_BROKEN_LINK_EMAILS:
- domain = request.META['HTTP_HOST']
- referer = request.META.get('HTTP_REFERER', None)
- is_internal = referer and (domain in referer)
- path = request.get_full_path()
- if referer and not _is_ignorable_404(path) and (is_internal or '?' not in referer):
- mail_managers("Broken %slink on %s" % ((is_internal and 'INTERNAL ' or ''), domain),
- "Referrer: %s\nRequested URL: %s\n" % (referer, request.get_full_path()))
- # If there's no flatfile we want to return the original 404 response
+ domain = request.META['HTTP_HOST']
+ referer = request.META.get('HTTP_REFERER', None)
+ is_internal = referer and (domain in referer)
+ path = request.get_full_path()
+ if referer and not _is_ignorable_404(path) and (is_internal or '?' not in referer):
+ mail_managers("Broken %slink on %s" % ((is_internal and 'INTERNAL ' or ''), domain),
+ "Referrer: %s\nRequested URL: %s\n" % (referer, request.get_full_path()))
return response
- # Use ETags, if requested
+ # Use ETags, if requested.
if settings.USE_ETAGS:
etag = md5.new(response.get_content_as_string('utf-8')).hexdigest()
if request.META.get('HTTP_IF_NONE_MATCH') == etag:
Please sign in to comment.
Something went wrong with that request. Please try again.