ApacheRedirection

From MLDonkey
Jump to: navigation, search

First method

The second method doesn't works for me, so I (Clash) use this :

In /etc/apache2/sites-enabled/000-default :

<VirtualHost *:80>
...

# Force ssl
    RewriteEngine On
    RewriteCond %{SERVER_PORT} ^80$
    RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]

...
</VirtualHost>

In /etc/apache2/sites-enabled/ssl (port 443) :

<VirtualHost *:443>
...

# Allow port 4080
    <Proxy http://localhost:4080>
        Allow from all
    </Proxy>

# Redirection
    RewriteEngine On
    RewriteRule ^/mldonkey$ /mldonkey/ [R]
    RewriteRule ^/mldonkey/(.*) http://localhost:4080/$1 [P]

...
</VirtualHost>

This way, you can use

https://serverName/mldonkey to access http://serverName:4080


If you want to use

http://serverName/mldonkey to access http://serverName:4080

simply write the above content of ssl in 000-default without the "# Force ssl" paragraph

Second method

I already posted this to the mldonkey-bugs list aeons ago ... works great and without modifications if locations should change. Just to make that point clear I left the old entry under my additions :)

# the following line was missing for me, so i thought why not add it, might help some other people too :)
RewriteEngine       on
# Proxy requests for mldonkey, don't use ProxyPass directly, it just plain sucks
# and this works great :)
RewriteCond      %{REQUEST_URI}           /mldonkey/.*
RewriteRule      .'''/(.''')                  http://inside:4080/$1 [[P]] [[L]]
# Rewrite the relative URI's mldonkey generates to use the /mldonkey/ prefix so the
# above rewrite rule can catch it.
RewriteCond      %{HTTP_REFERER}          .'''outside:4043/mldonkey.'''
RewriteRule      .'''/(.''')                  https://outside:4043/mldonkey/$1 [[R]]

I (mezcalero) prefer the following form, it is a bit shorter and more complete:

RewriteEngine on
RewriteRule ^/mldonkey$ /mldonkey/ [[R,L]]
RewriteRule ^/mldonkey/(.*)$ http://localhost:4080/$1 [[P,L]]
RewriteCond %{HTTP_REFERER} ^https?://[[^/]]+/mldonkey/
RewriteRule ^/(.*)$ /mldonkey/$1 [[R,L]]

Old:

From Crazee_Canuck (+ aibanahamano):

RewriteEngine       on
RewriteLog rewrite.log
RewriteLogLevel 9
ProxyRequests        on
RewriteRule /mldonkey http://localhost:4080/$1 [[P,L]]
RewriteRule /(submit.*) http://localhost:4080/$1 [[P,L]]
RewriteRule /(files.*) http://localhost:4080/$1 [[P,L]]
RewriteRule /(commands.*) http://localhost:4080/$1 [[P,L]]
RewriteRule /(oneframe.*) http://localhost:4080/$1 [[P,L]]
RewriteRule /(noframe.*) http://localhost:4080/$1 [[P,L]]
RewriteRule /(results.*) http://localhost:4080/$1 [[P,L]]
RewriteRule /(i.js) http://localhost:4080/$1 [[P,L]]
RewriteRule /(h.css) http://localhost:4080/$1 [[P,L]]
RewriteRule /(di.js) http://localhost:4080/$1 [[P,L]]
RewriteRule /(dh.css) http://localhost:4080/$1 [[P,L]]
ProxyPassReverse /(.*)  http://localhost:4080/$1

Source: [1] and: http://mail.nongnu.org/archive/html/mldonkey-users/2003-03/msg00377.html

We could also do just a virtual host, guaranteed to work without those confusing rewrite rules :)

#
# Use name-based virtual hosting.
#
NameVirtualHost *

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#

# This is for any site that's currently running on your machine,
# make sure you move all your directives for it here, including aliases, overrides, types, etc.
# otherwise, people will see the mldonkey site by default when they visit your machine's website!
<VirtualHost *>
  ServerName domain.dynamic.ip.com
  ServerAlias www.domain.dynamic.ip.com

...

</VirtualHost>

# Now the mldonkey server, notice that the host header is the only thing you need to remember.  i.e. http://mldonkey.mydomain.dyndns.org
<VirtualHost *>
  ServerName mldonkey.domain.dynamic.ip.com
  <IfModule mod_proxy.c>
     ProxyRequests Off
     ProxyPass  /  http://localhost:4080/
     ProxyPassReverse / http://localhost:4080/
  </IfModule>
</VirtualHost>

See also



LanguagesEnglish

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox