Python — Django URL перенаправляет все запросы PHP

Как я могу перенаправить все запросы, содержащие PHP где-нибудь в URL?

У меня есть это, чтобы перенаправить все, что заканчивается .php

url(r'^(?P<path>.*)\.php$',
RedirectView.as_view(
url='http://www.php.net/', permanent=True)),

Теперь я хочу перехватить и перенаправить все URL-запросы, содержащие ключевое слово php в любом месте в URL, даже без точки . что-то вроде blah/php/blah или же blahPHPblah и т.п.

Что-то вроде этого:

url(r'^(?P<path>php*)',
RedirectView.as_view(
url='http://blah.com/', permanent=True)),

Если бы правило .htaccess было бы лучшим решением, я тоже открыт для этого!

1

Решение

Одним из решений будет использование промежуточного программного обеспечения для перенаправления:

from django.shortcuts import redirect


class PHPRedirectMiddleware:
def __init__(self, get_response):
self.get_response = get_response
# One-time configuration and initialization.

def __call__(self, request):
# Code to be executed for each request before
# the view (and later middleware) are called.

if ".php" in request.get_raw_uri():
return redirect(to="http://www.example.com")

response = self.get_response(request)

# Code to be executed for each request/response after
# the view is called.

return response

Который вы должны зарегистрироваться в settings.py в MIDDLEWARE список.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector