コード例 #1
0
def redirect(event):
    request = event.request
    canonical_url = request.get('CANONICAL_URL', None)
    if canonical_url is not None:
        query_string = request['QUERY_STRING']
        if query_string:
            canonical_url = canonical_url + '?' + query_string

        actual_url = request.get('ACTUAL_URL')
        if query_string:
            actual_url = actual_url + '?' + query_string
        if actual_url == canonical_url:
            logger.warning(
                "wants to redirect from '%s' to CANONICAL_URL '%s', do nothing as it would be circular redirect",
                actual_url, canonical_url)
            logger.warning(
                "might be due to a broken plone.folder -- object id is missing from container.objectIds()"
            )
            return
        referer_url = request.get('HTTP_REFERER', '')
        if referer_url == canonical_url:
            logger.warning(
                "wants to redirect to CANONICAL_URL '%s' but HTTP_REFERER is '%s'; do nothing as it would be circular redirect to referer",
                canonical_url, referer_url)
            return
        logger.info("redirect from '%s' to CANONICAL_URL '%s'", actual_url,
                    canonical_url)
        if might_redirect(request):
            if request.get('IS_SITE_ACQUIRED', False):
                raise NotFound
            dummy = None
            doNotCache(dummy, request, request.response)
            raise MovedPermanently(canonical_url)
コード例 #2
0
ファイル: default.py プロジェクト: pigaov10/plone4.3
        def modifyResponse(self, rulename, response):
            registry = getContext(self.published, IResourceRegistry)

            if registry is not None:
                if registry.getDebugMode() or not registry.isCacheable(self.published.__name__):
                    doNotCache(self.published, self.request, response)
                    return

            super(ResourceRegistriesCaching, self).modifyResponse(rulename, response, class_=StrongCaching)
コード例 #3
0
 def modifyResponse(self, rulename, response, class_=None):
     options = lookupOptions(class_ or self.__class__, rulename)
     hostname = getHostname(self.request)
     if hostname in options.get('hostnames_nocache',
                                self.hostnames_nocache):
         doNotCache(self.published, self.request, response)
     else:
         return super(BaseHostnameCaching, self).modifyResponse(rulename,
                                                                response,
                                                                class_=None)
コード例 #4
0
        def modifyResponse(self, rulename, response):
            registry = getContext(self.published, IResourceRegistry)

            if registry is not None:
                if registry.getDebugMode() or not registry.isCacheable(
                        self.published.__name__):
                    doNotCache(self.published, self.request, response)
                    return

            super(ResourceRegistriesCaching,
                  self).modifyResponse(rulename,
                                       response,
                                       class_=StrongCaching)
コード例 #5
0
 def modifyResponse(self, rulename, response):
     doNotCache(self.published, self.request, response)
コード例 #6
0
ファイル: default.py プロジェクト: pigaov10/plone4.3
 def modifyResponse(self, rulename, response):
     doNotCache(self.published, self.request, response)