Я нашел еще одну проблему, вызвавшую эту проблему, и уже решил ее. Я случайно сохранил свой скрипт в кодировке UTF-16
. Похоже, что PHP5 не может распознать тег <?php
в 16-битной кодировке по умолчанию.
Ну, я нашел решение после глубокого погружения в документацию Apache. Основной заставкой был флаг END
(см. https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_end ) вместе с другими изменениями, которые вы можете найти в конечном результате. .
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]
RewriteCond %{REQUEST_URI} "api\/.*"
RewriteRule ^api\/(.*)$ server/api.php/$1 [END]
RewriteCond %{REQUEST_URI} !=api\/.*
RewriteRule ^ /index.html [L]
Я надеюсь, что это поможет людям, которые работают с Angular 2+ и хотят использовать один и тот же сервер Apache для бэкэнда и SPA одновременно.