Я хотел бы настроить мой веб-сервер Apache для обслуживания как приложения с одной страницей, так и процесса WSGI. Я могу успешно служить приложение WSGI на /api
с помощью этой конфигурации:Apache обслуживает одностраничное приложение вместе с процессом WSGI с помощью AliasMatch
WSGIDaemonProcess myapp threads=5 user=apache
WSGIScriptAlias /api /var/www/html/myapp/setup/myapp.wsgi
Как таковой, если пользователь нажмет /api/things
данные JSON из моего WSGI приложение (опоки) передается по.
И мой файл домой index.html
(который подается, когда пользователь нажимает /
) работает при включении этого:
DocumentRoot /var/www/html/myapp/myappweb/public
Однако, когда пользователь посещает любой маршрут, который не начинается с /api
Я хотел бы мой Apache веб-сервер для обслуживания index.html
. Например, если пользователь нажмет /things
или /things/42
Я хотел бы Apache, чтобы отправить их в index.html
вместо того, чтобы бросать 404. (я использую Redux-маршрутизатор для обработки на стороне клиента пути.)
Я получил эту работу в моем Dev среде с использованием пакета живого сервера узла с этим флагом:
live-server --entry-file=index.html
Кроме того, я могу использовать AliasMatch
, чтобы заставить все маршруты, начиная с /things
показать index.html
:
AliasMatch "^/things(/.*)?$" /var/www/html/myapp/myappweb/public/index.html
Но то, что я действительно хочу, является регулярным выражением AliasMatch
, которое заставляет все маршруты, за исключением чего-либо, начиная с /api/
, для отображения index.html
.