У меня есть Apache Web Server 2.4 и JBoss 7, раскрывающий веб-проект.
Поскольку я работаю локально, я сделал /etc/hosts/
запись домена, например:
127.0.0.1 testmask
И поместите эту конфигурацию виртуального хоста в мой Apache:
<VirtualHost *:80>
ServerName testmask/
ServerAlias testmask
RewriteEngine on
RewriteRule ^/$ http://testmask/MyWebapp/ [R]
ProxyPass / http://testmask:8080/
ProxyPassReverse / http://testmask:8080/
</VirtualHost>
И это работает как шарм. Если я поставлю браузер:
testmask/
Он перенаправляет на:
http://testmask/MyWebapp/
Так что пока хорошо.
Теперь, поскольку я хотел бы получить тот же результат, но оставил только:
http://testmask/
Я сделал прокси для правила перезаписи:
RewriteRule ^/$ http://testmask/MyWebapp/ [P]
Но у меня проблема 404 not found на css и js, относящихся к корню контекста.
Это потому, что мой браузер пытается получить css и js из:
http://testmask/static/
|- css/*
|- js/*
|- medias/*
пока они находятся в:
http://testmask/MyWebapp/static/
|- css/*
|- js/*
|- medias/*
(типичная структура папок build \ ReactJS create-response-app).
Пробовал разные подходы через RewriteRules или Proxypass, но ничего не работает, вероятно, из-за моего плохого опыта работы с Apache.
Считайте, что я предпочитаю не трогать index.html
так как мои проекты тоже должны жить в одиночестве, так как я разрабатываю их через npm
.
Я бы попробовал с mod_proxy.
Сначала включите:
a2enmod mod_proxy
a2enmod mod_proxy_http
Тогда в вашей конфигурации apache это будет выглядеть так:
ProxyPass / http://localhost/MyWebapp
ProxyPassReverse / http://localhost/MyWebapp
Итак, теперь, если вы подключитесь к http: // localhost / (или в вашем случае http: // testmask /) он должен быть прокси для MyWebapp.