
Ich habe eine App auf laufen, localhost:2000
während meine Site auf localhost liegt. Ich würde das Verzeichnis gerne auf /projects/projectName
-> verweisen localhost:2000
. Das Problem tritt jedoch auf, wenn die App Get/Post-Anfragen stellt.
Wenn beispielsweise eine GET-Anforderung an gestellt wird /run
, zeigt die Anforderung die GET-URL als https://localhost/run
an und gibt eine 404-Fehlermeldung zurück. Die beiden Probleme hierbei sind:
- Es leitet auf Port 443 weiter.
- der Port 2000 geht nun auf Anfrage verloren.
Update: Ich habe versucht, SSL auszuschalten, aber Port 2000 geht bei der Anforderung immer noch verloren. Idealerweise würde ich mir wünschen, dass dies mit SSL funktioniert.
Möglicherweise handelt es sich bei diesen beiden Problemen um ein und dasselbe, aber ich bin nicht sicher.
Um zu sehen, wie es funktionieren soll, http://stevenshi.me:2000
sehen Sie sich die funktionierende Anwendung an. Wie Sie sehen, gehen die GET- und POST-Anfragen an die obige URL + /foo
.
Hier ist meine aktuelle Apache-Konfigurationsdatei
<VirtualHost *:80>
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]
ServerAdmin [email protected]
ServerName stevenshi.me
ServerAlias www.stevenshi.me
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName stevenshi.me:443
ServerAlias www.stevenshi.me
DocumentRoot /var/www/html
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
SSLCertificateFile /etc/apache2/ssl/ssl.crt
SSLCertificateKeyFile /etc/apache2/ssl/private.key
SSLCertificateChainFile /etc/apache2/ssl/sub.class1.server.ca.pem
ProxyRequests on
ProxyPreserveHost on
<Proxy *>
Order deny,allow
Allow from localhost
</Proxy>
RewriteEngine on
RewriteRule ^/projects/CS32Brewer/(.*)$ http://localhost:2000/$1 [
#ProxyPass /projects/CS32Brewer/ http://localhost:2000/
ProxyPassReverse /projects/CS32Brewer/ http://localhost:2000/
#ProxyPass /projects/Maps http://locahost:2001
#ProxyPassReverse /projects/Maps http://localhost:2001
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
</IfModule>
Antwort1
Sie müssen mit mod_rewrite neu schreiben oder die Anwendung so konfigurieren, dass richtige URLs erstellt werden.