Как я могу перенаправить все запросы, содержащие 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 было бы лучшим решением, я тоже открыт для этого!
Одним из решений будет использование промежуточного программного обеспечения для перенаправления:
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
список.
Других решений пока нет …