Я использую приложение Router for React. Когда я использую его с XAMPP и настраиваю файл .htaccess, маршрутизатор работает нормально. Это мой файл .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^ index.html [L]
</IfModule>
Затем я решаю создать докер для запуска моего приложения. Я использую образы php7.3.1-apache и mariadb. Это мой docker-compose.yml:
version: '3'
services:
php-apache:
build:
context: ./php-apache
ports:
- 3000:80
volumes:
- ./dist:/var/www/html
links:
- 'mariadb'
mariadb:
image: mariadb:10.4.1
volumes:
- mariadb:/var/lib/mysql
environment:
TZ: "Asia/Bangkok"
MYSQL_ALLOW_EMPTY_PASSWORD: "no"
MYSQL_ROOT_PASSWORD: "root"
MYSQL_USER: 'user'
MYSQL_PASSWORD: 'user'
MYSQL_DATABASE: 'db'
volumes:
mariadb:
После настройки я запускаю свое приложение и ввожу адрес http://localhost:3000/login. Это дает мне ошибку
The requested URL /login was not found on this server.
Он отлично работает на XAMPP, но не работает в докере.
Я уже добавил это в Dockerfile.

Возможно
mod_rewriteотсутствует? Включите его черезRUN a2enmod rewriteв вашем Dockerfile. Также проверьте, установлен лиAllowOverride. В любом случае, зачем вам PHP и Мария для приложения React?