Переход по ссылке, которая не является частью приложения Django, приводит к ошибке 404

У меня был сайт wordpress на "mydomain.com" с установкой whmcs на mydomain.com/portal. все было хорошо. Недавно я избавился от установки wordpress и создал Django-сайт на mydomain.com. Установка WHMCS на mydomain.com/portal все еще там.

Но вот в чем проблема:

  • при посещении mydomain.com/portal выдает 404 ошибку
  • то же самое для mydomain.com/portal/admin (404 ошибка)

страницы загружаются, если я посещаю mydomain.com/portal/index.php или mydomain.com/portal/login

Мой текущий файл .htaccess на сайте mydomain.com:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Header always set Content-Security-Policy "upgrade-insecure-requests;"


# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION BEGIN
PassengerAppRoot "/home/user/mydomain.com"
PassengerBaseURI "/"
PassengerPython "/home/usr/virtualenv/mydomain.com/3.9/bin/python"
# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION END
# DO NOT REMOVE OR MODIFY. CLOUDLINUX ENV VARS CONFIGURATION BEGIN
<IfModule Litespeed>
</IfModule>
# DO NOT REMOVE OR MODIFY. CLOUDLINUX ENV VARS CONFIGURATION END

# Newly added text below here, in order to troubleshoot CSS not showing up
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^static/(.*)$ /home/usr/mydomain.com/staticfiles/$1 [QSA,L,NC]
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^media/(.*)$ /home/usr/mydomain.com/blog_images/$1 [QSA,L,NC]
</IfModule>


<FilesMatch "\.(?i:ico|flv|jpg|jpeg|png|gif|js|css)$">
    <IfModule mod_expires.c>
        ExpiresActive On
        ExpiresDefault "access plus 1 month"
    </IfModule>
    FileETag MTime Size
</FilesMatch>

Я попробовал добавить нижеприведенный вариант, но это не помогло.

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/portal/
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Header always set Content-Security-Policy "upgrade-insecure-requests;"

Я пытаюсь заставить установку whmcs загружаться как раньше по адресу mydomain.com/portal вместо того, чтобы ссылаться на index.php

Вы перешли с сайта WordPress на сайт Django, поэтому правила .htaccess могут потребовать некоторой корректировки, чтобы приспособиться к новой установке. Вот измененная версия вашего файла .htaccess, которая должна правильно направлять запросы к установке WHMCS:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

# Redirect requests to WHMCS installation
RewriteRule ^portal(/.*)?$ /portal/index.php [L]

# Your existing rules below
Header always set Content-Security-Policy "upgrade-insecure-requests;"

# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION BEGIN
PassengerAppRoot "/home/user/mydomain.com"
PassengerBaseURI "/"
PassengerPython "/home/usr/virtualenv/mydomain.com/3.9/bin/python"
# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION END
# DO NOT REMOVE OR MODIFY. CLOUDLINUX ENV VARS CONFIGURATION BEGIN
<IfModule Litespeed>
</IfModule>
# DO NOT REMOVE OR MODIFY. CLOUDLINUX ENV VARS CONFIGURATION END

# Newly added text below here, in order to troubleshoot CSS not showing up
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^static/(.*)$ /home/usr/mydomain.com/staticfiles/$1 [QSA,L,NC]
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^media/(.*)$ /home/usr/mydomain.com/blog_images/$1 [QSA,L,NC]
</IfModule>

<FilesMatch "\.(?i:ico|flv|jpg|jpeg|png|gif|js|css)$">
    <IfModule mod_expires.c>
        ExpiresActive On
        ExpiresDefault "access plus 1 month"
    </IfModule>
    FileETag MTime Size
</FilesMatch>

"RewriteRule ^portal(/.*)?$ /portal/index.php [L]" должно перенаправлять все запросы к /portal на /portal/index.php, позволяя WHMCS обрабатывать маршрутизацию внутри, как это было раньше.

Вернуться на верх