Important: Please read the Qt Code of Conduct -

How to redirect QWebEngineUrlRequestInfo to local files?

  • I have a simple Qt application that loads a page in a QWebEngineView. I would like to redirect all http requests with the word "static" in the url to local files. Using WebUrlRequestInterceptor I reimplemented the interceptRequest method. Here is the code:

    class MyWebUrlRequestInterceptor : public QWebEngineUrlRequestInterceptor
        void interceptRequest(QWebEngineUrlRequestInfo &info) {
            if (info.requestUrl().toString().contains("static")) {
                QString newUrl = QDir::currentPath() + info.requestUrl().toString().mid(21, info.requestUrl().toString().length());
                qDebug() << "new url = " << newUrl;

    In main function I did

    MyWebUrlRequestInterceptor *wuri = new MyWebUrlRequestInterceptor();

    And the interceptRequest seems to work fine, but I get a message.

    Not allowed to load local resource

    I searched online and I many people are saying that I should add the --disable-web-security flag. So i did in my .pro file:

    QMAKE_CXXFLAGS += --disable-web-security

    But it doesn't seem to be working. Am I doing something wrong? Is there a different solutions? Could I make custom protocols to serve local files and redirect to them in Qt as a workaround?

    I'm using Qt 5.9.1 and QtCreator 4.3.1.

Log in to reply